Files
Maison/Migration/Ansible/roles/samba4-dc/tasks/pre_install.yml
2026-02-10 12:12:11 +01:00

92 lines
2.2 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
# Pre-installation tasks
- name: Install required Samba packages
apt:
name:
- samba
- samba-dsdb-modules
- samba-vfs-modules
- winbind
- libnss-winbind
- libpam-winbind
- krb5-config
- krb5-user
- dnsutils
- acl
- attr
- ldb-tools
- smbclient
state: present
- name: Stop default Samba services
systemd:
name: "{{ item }}"
state: stopped
enabled: no
loop:
- smbd
- nmbd
- winbind
ignore_errors: yes
- name: Mask default Samba services to prevent conflicts
systemd:
name: "{{ item }}"
masked: yes
loop:
- smbd
- nmbd
- winbind
ignore_errors: yes
- name: Check if server is already an Active Directory Domain Controller
shell: |
if [ -f /etc/samba/smb.conf ]; then
grep -i "server role.*active directory domain controller" /etc/samba/smb.conf || echo "not_ad_dc"
else
echo "no_config"
fi
register: samba_role_check
changed_when: false
failed_when: false
- name: Display current Samba role status
debug:
msg: |
{% if 'active directory domain controller' in samba_role_check.stdout.lower() %}
✅ Server is already configured as Active Directory Domain Controller
⚠️ Skipping backup and cleanup to preserve existing AD configuration
{% else %}
Server is not configured as AD DC ({{ samba_role_check.stdout }})
🔄 Will backup existing config and clean databases
{% endif %}
- name: Backup existing Samba configuration
copy:
src: /etc/samba/smb.conf
dest: /etc/samba/smb.conf.orig
remote_src: yes
backup: yes
ignore_errors: yes
when: "'active directory domain controller' not in samba_role_check.stdout.lower()"
- name: Clean existing Samba databases
file:
path: "{{ item }}"
state: absent
loop:
- /var/lib/samba/private
- /var/cache/samba
- /etc/samba/smb.conf
ignore_errors: yes
when: "'active directory domain controller' not in samba_role_check.stdout.lower()"
- name: Recreate Samba directories
file:
path: "{{ item }}"
state: directory
mode: '0755'
loop:
- /var/lib/samba
- /var/cache/samba
when: "'active directory domain controller' not in samba_role_check.stdout.lower()"