Добавить ansible.yml
This commit is contained in:
151
ansible.yml
Normal file
151
ansible.yml
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
---
|
||||||
|
- hosts: ldap-server
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: update
|
||||||
|
dnf:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: install freeipa-server
|
||||||
|
dnf:
|
||||||
|
name: freeipa-server
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: install freeipa-server-dns
|
||||||
|
dnf:
|
||||||
|
name: ipa-server-dns
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: enable firewalld
|
||||||
|
systemd:
|
||||||
|
name: firewalld
|
||||||
|
enabled: yes
|
||||||
|
state: started
|
||||||
|
|
||||||
|
- name: open firewalld ports
|
||||||
|
firewalld:
|
||||||
|
service: "{{ item }}"
|
||||||
|
permanent: yes
|
||||||
|
immediate: yes
|
||||||
|
state: enabled
|
||||||
|
loop:
|
||||||
|
- http
|
||||||
|
- https
|
||||||
|
- dns
|
||||||
|
- kerberos
|
||||||
|
- kpasswd
|
||||||
|
- ldap
|
||||||
|
- ldaps
|
||||||
|
- ntp
|
||||||
|
|
||||||
|
- name: enable firewalld
|
||||||
|
systemd:
|
||||||
|
name: firewalld
|
||||||
|
enabled: yes
|
||||||
|
state: started
|
||||||
|
|
||||||
|
- name: generate pass admin
|
||||||
|
set_fact:
|
||||||
|
admin_password: "{{ lookup('ansible.builtin.password', '/dev/null length=12') }}"
|
||||||
|
|
||||||
|
- name: generate pass directory manager
|
||||||
|
set_fact:
|
||||||
|
ds_password: "{{ lookup('ansible.builtin.password', '/dev/null length=12') }}"
|
||||||
|
|
||||||
|
- name: save admin pass
|
||||||
|
copy:
|
||||||
|
content: "{{ admin_password }}"
|
||||||
|
dest: "./admin_pass"
|
||||||
|
become: no
|
||||||
|
delegate_to: localhost
|
||||||
|
|
||||||
|
- name: save directory manager pass
|
||||||
|
copy:
|
||||||
|
content: "{{ ds_password }}"
|
||||||
|
dest: "./ds_pass"
|
||||||
|
become: no
|
||||||
|
delegate_to: localhost
|
||||||
|
|
||||||
|
- name: change hosts
|
||||||
|
lineinfile:
|
||||||
|
path: /etc/hosts
|
||||||
|
line: "10.10.1.10 ldap-server.lab.local ldap-server"
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: freeipa server config
|
||||||
|
command: >
|
||||||
|
ipa-server-install -U
|
||||||
|
--domain=lab.local
|
||||||
|
--realm=LAB.LOCAL
|
||||||
|
--admin-password={{ admin_password }}
|
||||||
|
--ds-password={{ ds_password }}
|
||||||
|
--setup-dns
|
||||||
|
--auto-forwarders
|
||||||
|
--no-host-dns
|
||||||
|
|
||||||
|
- name: generate ssh key
|
||||||
|
openssh_keypair:
|
||||||
|
path: "./id_rsa"
|
||||||
|
type: rsa
|
||||||
|
size: 4096
|
||||||
|
register: key_data
|
||||||
|
delegate_to: localhost
|
||||||
|
become: false
|
||||||
|
|
||||||
|
- name: auth kerberos
|
||||||
|
shell: echo "{{ admin_password }}" | kinit admin@LAB.LOCAL
|
||||||
|
|
||||||
|
- name: generate pass pupkin.v
|
||||||
|
set_fact:
|
||||||
|
user_password: "{{ lookup('ansible.builtin.password', '/dev/null length=12') }}"
|
||||||
|
|
||||||
|
- name: create user
|
||||||
|
command: ipa user-add pupkin.a --first=Aristarkh --last=Pupkin --cn=pupkin.a --password
|
||||||
|
args:
|
||||||
|
stdin: "{{ user_password }}"
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: add ssh public key
|
||||||
|
command: ipa user-mod pupkin.a --sshpubkey="{{ key_data.public_key }}"
|
||||||
|
|
||||||
|
- name: show pass
|
||||||
|
debug:
|
||||||
|
msg: "ВНИМАНИЕ!!! Сохраните сгенерированные пароли: admin - {{ admin_password }}, directory manager - {{ ds_password }}, pupkin.a - {{ user_password }}"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- hosts: ldap-client
|
||||||
|
become: yes
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: update
|
||||||
|
dnf:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: install ipa-client
|
||||||
|
dnf:
|
||||||
|
name: ipa-client
|
||||||
|
state: present
|
||||||
|
|
||||||
|
|
||||||
|
- name: add dns
|
||||||
|
lineinfile:
|
||||||
|
path: /etc/resolv.conf
|
||||||
|
line: "nameserver 10.10.1.10"
|
||||||
|
insertbefore: BOF
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: get admin pass
|
||||||
|
set_fact:
|
||||||
|
admin_password: "{{ lookup('file', './admin_pass') | trim }}"
|
||||||
|
|
||||||
|
- name: freeipa client config
|
||||||
|
command: >
|
||||||
|
ipa-client-install -U
|
||||||
|
--domain=lab.local
|
||||||
|
--realm=LAB.LOCAL
|
||||||
|
--server=ldap-server.lab.local
|
||||||
|
--principal=admin
|
||||||
|
--password={{ admin_password }}
|
||||||
|
--mkhomedir
|
||||||
Reference in New Issue
Block a user