preparation for role domaincontroller
This commit is contained in:
9
roles/domaincontroller/handlers/main.yml
Normal file
9
roles/domaincontroller/handlers/main.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
- name: restart samba-ad-dc
|
||||||
|
service:
|
||||||
|
name: samba-ad-dc
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
- name: systemd daemon-reload
|
||||||
|
systemd:
|
||||||
|
daemon_reload: true
|
||||||
37
roles/domaincontroller/tasks/certs.yml
Normal file
37
roles/domaincontroller/tasks/certs.yml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
- name: domaincontroller | certs | ensure step-ca root cert is trusted
|
||||||
|
include_role:
|
||||||
|
name: base
|
||||||
|
tasks_from: system_setup/import_stepca.yml
|
||||||
|
|
||||||
|
- name: domaincontroller | certs | obtain certificate from step-ca via certbot
|
||||||
|
command: >
|
||||||
|
certbot certonly --standalone -n
|
||||||
|
-d {{ ansible_fqdn }}
|
||||||
|
--server {{ samba_stepca_server_url }}/acme/acme/directory
|
||||||
|
--agree-tos
|
||||||
|
--email admin@{{ samba_realm | lower }}
|
||||||
|
args:
|
||||||
|
creates: /etc/letsencrypt/live/{{ ansible_fqdn }}/fullchain.pem
|
||||||
|
notify: restart samba-ad-dc
|
||||||
|
|
||||||
|
- name: domaincontroller | certs | create certbot.service override directory
|
||||||
|
file:
|
||||||
|
path: /etc/systemd/system/certbot.service.d
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: domaincontroller | certs | create service override for step-ca
|
||||||
|
copy:
|
||||||
|
dest: /etc/systemd/system/certbot.service.d/override.conf
|
||||||
|
content: |
|
||||||
|
[Service]
|
||||||
|
Environment="REQUESTS_CA_BUNDLE=/root/root_ca.crt"
|
||||||
|
mode: '0644'
|
||||||
|
notify: systemd daemon-reload
|
||||||
|
|
||||||
|
- name: domaincontroller | certs | enable and start certbot timer
|
||||||
|
systemd:
|
||||||
|
name: certbot.timer
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
9
roles/domaincontroller/tasks/configure.yml
Normal file
9
roles/domaincontroller/tasks/configure.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
- name: domaincontroller | configure | create smb.conf from template
|
||||||
|
template:
|
||||||
|
src: smb.conf.j2
|
||||||
|
dest: /etc/samba/smb.conf
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
notify: restart samba-ad-dc
|
||||||
11
roles/domaincontroller/tasks/install.yml
Normal file
11
roles/domaincontroller/tasks/install.yml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
- name: domaincontroller | install | install samba, kerberos and certbot packages
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- samba
|
||||||
|
- smbclient
|
||||||
|
- krb5-user
|
||||||
|
- winbind
|
||||||
|
- python3-dnspython
|
||||||
|
- certbot
|
||||||
|
state: present
|
||||||
14
roles/domaincontroller/tasks/main.yml
Normal file
14
roles/domaincontroller/tasks/main.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
- name: domaincontroller | stop conflicting services
|
||||||
|
service:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: stopped
|
||||||
|
enabled: false
|
||||||
|
loop:
|
||||||
|
- systemd-resolved
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- import_tasks: install.yml
|
||||||
|
- import_tasks: provision.yml
|
||||||
|
- import_tasks: certs.yml
|
||||||
|
- import_tasks: configure.yml
|
||||||
26
roles/domaincontroller/tasks/provision.yml
Normal file
26
roles/domaincontroller/tasks/provision.yml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
- name: domaincontroller | provision | check if domain is already provisioned
|
||||||
|
stat:
|
||||||
|
path: /var/lib/samba/private/sam.ldb
|
||||||
|
register: samba_db
|
||||||
|
|
||||||
|
- name: domaincontroller | provision | provision the domain if not present
|
||||||
|
block:
|
||||||
|
- name: domaincontroller | provision | run samba-tool domain provision
|
||||||
|
command: >
|
||||||
|
samba-tool domain provision
|
||||||
|
--use-rfc2307
|
||||||
|
--realm={{ samba_realm }}
|
||||||
|
--domain={{ samba_workgroup }}
|
||||||
|
--server-role=dc
|
||||||
|
--dns-backend=SAMBA_INTERNAL
|
||||||
|
--adminpass='{{ samba_domain_password }}'
|
||||||
|
args:
|
||||||
|
creates: /var/lib/samba/private/sam.ldb
|
||||||
|
|
||||||
|
- name: domaincontroller | provision | copy kerberos config to system location
|
||||||
|
copy:
|
||||||
|
src: /var/lib/samba/private/krb5.conf
|
||||||
|
dest: /etc/krb5.conf
|
||||||
|
remote_src: true
|
||||||
|
when: not samba_db.stat.exists
|
||||||
21
roles/domaincontroller/templates/smb.conf.j2
Normal file
21
roles/domaincontroller/templates/smb.conf.j2
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# This file is managed by Ansible
|
||||||
|
[global]
|
||||||
|
netbios name = {{ ansible_hostname | upper }}
|
||||||
|
realm = {{ samba_realm }}
|
||||||
|
server role = active directory domain controller
|
||||||
|
workgroup = {{ samba_workgroup }}
|
||||||
|
|
||||||
|
tls enabled = yes
|
||||||
|
tls keyfile = /etc/letsencrypt/live/{{ ansible_fqdn }}/privkey.pem
|
||||||
|
tls certfile = /etc/letsencrypt/live/{{ ansible_fqdn }}/fullchain.pem
|
||||||
|
|
||||||
|
template homedir = /home/%U
|
||||||
|
template shell = /bin/zsh
|
||||||
|
|
||||||
|
[sysvol]
|
||||||
|
path = /var/lib/samba/sysvol
|
||||||
|
read only = No
|
||||||
|
|
||||||
|
[netlogon]
|
||||||
|
path = /var/lib/samba/sysvol/{{ samba_realm | lower }}/scripts
|
||||||
|
read only = No
|
||||||
17
roles/domaincontroller/vars/main.yml
Normal file
17
roles/domaincontroller/vars/main.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
31306666653634326663316166336131373337363366356363666331366132613865363161353930
|
||||||
|
3966353365343065303563306632643934616239623165370a373330663966363134633964343865
|
||||||
|
31613932373764666661373436353438313630373166643737336131656538313538666364653737
|
||||||
|
6635303861626335300a653366353730623135373938326539303761623939633631363730636635
|
||||||
|
62626138623932373830623735656535666464353265323265626165333232383537333134353536
|
||||||
|
36366237643130656335323861623263656364346561383231323533363361663333343065386166
|
||||||
|
33613164343635323336343664343861613461623136396430323765616135613364323435326464
|
||||||
|
32636634393166663838363731363636666166656337386433323763343062343062353863306338
|
||||||
|
39356661356637656334643065393262373234616435356631343862306131326664623265356263
|
||||||
|
39313962663266386331373864323866323235616461653066303664373335323039316337316662
|
||||||
|
64623932353562396364663435636135613935333631653665323565313131393038653932613533
|
||||||
|
36623862326130356561313933313465343531376561383339613363343866336430316665353465
|
||||||
|
65643061326330313634303832313663653538303537613235366638656133653135323230623037
|
||||||
|
32646638616534653531343332643532303735313165353432306135376438373436353530613365
|
||||||
|
38303437353061333337346232333463643762363039663734366133366239366337383837376439
|
||||||
|
35373335646137633031
|
||||||
Reference in New Issue
Block a user