infamousjoeg.provisioning
配置
一个 Ansible 角色,用于简化将账户集成到 CyberArk 的核心特权访问安全(PAS)中的任务,使用 CyberArk 的管理 API。
要求
Ansible >= v2.5
角色变量
变量 | 描述 | 必需? |
---|---|---|
cyberark_api_base_url |
CyberArk Web 服务管理 API 的基础 URL(示例:https://pvwa.cyberark.com) | 是 |
cyberark_auth_type |
要使用的身份验证方法(CyberArk/LDAP/Radius/Windows) | 是 |
cyberark_validate_certs |
验证 SSL 的布尔值(是/否) | 否 |
cyberark_username |
API 授权的用户名 | 是 |
cyberark_password |
API 授权用户的密码 | 是 |
cyberark_acct_name |
从 PVWA 获取凭证对象的唯一“名称”值 | 是 |
cyberark_acct_address |
从 PVWA 获取凭证对象的地址值 | 否 |
cyberark_acct_username |
从 PVWA 获取凭证对象的用户名值 | 否 |
cyberark_acct_password |
从 PVWA 获取凭证对象的密码值 | 否 |
cyberark_acct_platformId |
管理凭证对象的平台 | 是 |
cyberark_acct_safeName |
存储凭证对象的安全库 | 是 |
cyberark_acct_secretType |
正在集成的秘密类型(密码/密钥) | 是 |
cyberark_acct_autoManagement |
启用/禁用凭证对象自动管理的布尔值(是/否) | 否 |
cyberark_acct_manualReason |
禁用凭证对象自动管理的原因 | 否 |
示例剧本
一个示例,用于部署 LAMP 堆栈并将初始化 MySQL 时创建的 MySQL 数据库管理员上载。
---
- hosts: localhost
pre_tasks:
- name: 安装 Apache 和 PHP
yum:
name: ['httpd', 'php', 'php-mysql']
state: present
- name: 安装 Web 角色特定依赖项
yum:
name: ['git', 'wget', 'curl', 'jq', 'libsemanage-python']
state: present
- name: 启动 Apache
service:
name: httpd
state: started
enabled: yes
- name: 配置 SELinux 以允许 httpd 连接远程数据库
seboolean:
name: httpd_can_network_connect_db
state: true
persistent: yes
- name: 创建 index.php 启动页面
copy:
dest: "/var/www/html/index.php"
content: |
<?php echo "Hello World!"; ?>
- name: 安装 MariaDB 软件包
yum:
name: ['mariadb-server', 'MySQL-python']
state: present
- name: 配置 SELinux 以在任何端口启动 MySQL
seboolean:
name: mysql_connect_any
state: true
persistent: yes
- name: 启动 MySQL 服务
service:
name: mariadb
state: started
enabled: yes
- name: 创建一个新数据库
mysql_db:
name: demo
state: present
collation: utf8_general_ci
- name: 设置当前远程机器主机名的事实
set_fact:
mysql_address: "{{ inventory_hostname }}"
- name: 设置 MySQL 数据库用户名的事实
set_fact:
mysql_username: demo
- name: 设置随机 MySQL 数据库用户密码的事实
set_fact:
mysql_password: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"
no_log: yes
- name: 创建数据库用户
mysql_user:
name: "{{ mysql_username }}"
password: "{{ mysql_password }}"
priv: "*.*:ALL"
host: localhost
state: present
- name: 将示例数据复制到本地文件系统 /tmp/
copy:
src: files/dump.sql
dest: /tmp/dump.sql
- name: 将示例数据插入 MySQL 中的 demo 表
shell: "mysql -u {{ mysql_username }} -p{{ mysql_password }} demo < /tmp/dump.sql"
- name: 重启 Apache
service:
name: httpd
state: restarted
- name: 安装数据库连接 PHP 脚本 db.php
copy:
src: files/db.php
dest: /var/www/html/db.php
roles:
- role: infamousjoeg.provisioning
cyberark_api_base_url: https://components.cyberarkdemo.example
cyberark_auth_type: LDAP
cyberark_validate_certs: no
cyberark_username: Svc_ProvTest_Fedora
cyberark_password: Cyberark1
cyberark_acct_name: TEST-AUTO-ONBOARD-{{ mysql_address }}-{{ mysql_username }}
cyberark_acct_address: "{{ mysql_address }}"
cyberark_acct_username: "{{ mysql_username }}"
cyberark_acct_password: "{{ mysql_password }}"
cyberark_acct_platformId: MySQL
cyberark_acct_safeName: TEST-AUTO-ONBOARD
cyberark_acct_secretType: password
cyberark_acct_autoManagement: no
cyberark_acct_manualReason: 为演示目的
测试
要求
- Python 2.7.x
- Docker CE
- Ansible >= 2.5
pip install --user molecule
pip install molecule[docker]
用法
使用 Ansible Molecule 进行测试:
molecule test
许可证
MIT
关于项目
Onboarding and offboarding of credential objects in CyberArk's Privileged Access Security (PAS) Core solution
安装
ansible-galaxy install infamousjoeg.provisioning
许可证
mit
下载
213
拥有者
Sr. DevOps Security Engineer for @cyberark