provisioning
Провизия
Роль Ansible для упрощения задачи добавления аккаунтов в Core Privileged Access Security (PAS) CyberArk с использованием Management API CyberArk.
Требования
Ansible >= v2.5
Переменные роли
Переменная | Описание | Обязательно? |
---|---|---|
cyberark_api_base_url |
Основной URL API управления CyberArk Web Services (Пример: 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: Установить зависимости для веб-роли
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 "Привет, мир!"; ?>
- 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: Вставить тестовые данные в таблицу demo в MySQL
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
Загрузки
201
Владелец
Sr. DevOps Security Engineer for @cyberark