infamousjoeg.provisioning
Bereitstellung
Eine Ansible-Rolle, die die Aufgabe erleichtert, Konten in CyberArk's Core Privileged Access Security (PAS) mithilfe der CyberArk Management API anzulegen.
Anforderungen
Ansible >= v2.5
Rollenvariablen
Variable | Beschreibung | Erforderlich? |
---|---|---|
cyberark_api_base_url |
Die Basis-URL der CyberArk Web Services Management API (Beispiel: https://pvwa.cyberark.com) | Ja |
cyberark_auth_type |
Die zu verwendende Authentifizierungsmethode (CyberArk/LDAP/Radius/Windows) | Ja |
cyberark_validate_certs |
Boolean-Wert zur Validierung von SSL (ja/nein) | Nein |
cyberark_username |
API-autorisierter Benutzername | Ja |
cyberark_password |
Passwort des API-autorisierter Benutzers | Ja |
cyberark_acct_name |
Eindeutiger "Name"-Wert des Anmeldeinformationsobjekts aus PVWA | Ja |
cyberark_acct_address |
Adresswert des Anmeldeinformationsobjekts aus PVWA | Nein |
cyberark_acct_username |
Benutzername des Anmeldeinformationsobjekts aus PVWA | Nein |
cyberark_acct_password |
Passwortwert des Anmeldeinformationsobjekts aus PVWA | Nein |
cyberark_acct_platformId |
Plattform zur Verwaltung des Anmeldeinformationsobjekts | Ja |
cyberark_acct_safeName |
Safe, in dem das Anmeldeinformationsobjekt gespeichert werden soll | Ja |
cyberark_acct_secretType |
Der Typ des Anmeldegeheimnisses, das angelegt wird (Passwort/Schlüssel) | Ja |
cyberark_acct_autoManagement |
Boolean-Wert zur Aktivierung/Deaktivierung der automatischen Verwaltung des Anmeldeinformationsobjekts (ja/nein) | Nein |
cyberark_acct_manualReason |
Grund, warum die automatische Verwaltung des Anmeldeinformationsobjekts deaktiviert wird | Nein |
Beispiel-Playbook
Ein Beispiel zur Bereitstellung eines LAMP-Stacks und zur Anlegung des MySQL-Datenbankadministrators, der während der Initialisierung von MySQL erstellt wird.
---
- hosts: localhost
pre_tasks:
- name: Apache & PHP installieren
yum:
name: ['httpd', 'php', 'php-mysql']
state: present
- name: Webrollen-spezifische Abhängigkeiten installieren
yum:
name: ['git', 'wget', 'curl', 'jq', 'libsemanage-python']
state: present
- name: Apache starten
service:
name: httpd
state: started
enabled: yes
- name: SELinux so konfigurieren, dass httpd Verbindung zur Remote-Datenbank zulässt
seboolean:
name: httpd_can_network_connect_db
state: true
persistent: yes
- name: index.php Startseite erstellen
copy:
dest: "/var/www/html/index.php"
content: |
<?php echo "Hallo Welt!"; ?>
- name: MariaDB-Paket installieren
yum:
name: ['mariadb-server', 'MySQL-python']
state: present
- name: SELinux so konfigurieren, dass MySQL auf jedem Port gestartet werden kann
seboolean:
name: mysql_connect_any
state: true
persistent: yes
- name: MySQL-Dienst starten
service:
name: mariadb
state: started
enabled: yes
- name: Eine neue Datenbank erstellen
mysql_db:
name: demo
state: present
collation: utf8_general_ci
- name: Fakt mit dem aktuellen Hostnamen der Remote-Maschine setzen
set_fact:
mysql_address: "{{ inventory_hostname }}"
- name: Fakt mit dem MySQL-Datenbank-Benutzernamen setzen
set_fact:
mysql_username: demo
- name: Fakt mit einem randomisierten Passwort für den MySQL-Datenbank-Benutzer setzen
set_fact:
mysql_password: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"
no_log: yes
- name: Einen Datenbankbenutzer erstellen
mysql_user:
name: "{{ mysql_username }}"
password: "{{ mysql_password }}"
priv: "*.*:ALL"
host: localhost
state: present
- name: Beispieldaten in das lokale Dateisystem /tmp/ kopieren
copy:
src: files/dump.sql
dest: /tmp/dump.sql
- name: Beispieldaten in die Demo-Tabelle in MySQL einfügen
shell: "mysql -u {{ mysql_username }} -p{{ mysql_password }} demo < /tmp/dump.sql"
- name: Apache neu starten
service:
name: httpd
state: restarted
- name: PHP-Skript zur Datenbankverbindung db.php installieren
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: nein
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: passwort
cyberark_acct_autoManagement: nein
cyberark_acct_manualReason: Zu Demozwecken
Test
Anforderungen
- Python 2.7.x
- Docker CE
- Ansible >= 2.5
pip install --user molecule
pip install molecule[docker]
Verwendung
Testen mit Ansible Molecule:
molecule test
Lizenz
MIT
Über das Projekt
Onboarding and offboarding of credential objects in CyberArk's Privileged Access Security (PAS) Core solution
Installieren
ansible-galaxy install infamousjoeg.provisioning
Lizenz
mit
Downloads
213
Besitzer
Sr. DevOps Security Engineer for @cyberark