- name: Create /etc/stunnel/certs file: path=/etc/stunnel/certs state=directory owner=root group=root mode=0755 - name: Generate a private key and a X.509 certificate for Bacula SD command: genkeypair.sh x509 --pubkey=/etc/stunnel/certs/{{ inventory_hostname_short }}-sd.pem --privkey=/etc/stunnel/certs/{{ inventory_hostname_short }}-sd.key --ou=BaculaSD --cn={{ inventory_hostname }} --dns={{ inventory_hostname }} -t rsa -b 4096 -h sha512 register: r1 changed_when: r1.rc == 0 failed_when: r1.rc > 1 notify: - Restart stunnel@bacula-sd tags: - genkey - name: Fetch Bacula SD X.509 certificate # Ensure we don't fetch private data become: False fetch: src=/etc/stunnel/certs/{{ inventory_hostname_short }}-sd.pem dest=certs/bacula/ fail_on_missing=yes flat=yes tags: - genkey - name: Copy Bacula Dir/FD X.509 certificates assemble: src=certs/bacula regexp="-(dir|fd)\.pem$" remote_src=no dest=/etc/stunnel/certs/bacula-dir+fds.pem owner=root group=root mode=0644 register: r2 notify: - Restart stunnel@bacula-sd - name: Configure stunnel template: src=etc/stunnel/bacula-sd.conf.j2 dest=/etc/stunnel/bacula-sd.conf owner=root group=root mode=0644 register: r3 notify: - Restart stunnel@bacula-sd - name: Enable stunnel@bacula-sd service: name=stunnel4@bacula-sd enabled=yes - name: Start stunnel service: name=stunnel4@bacula-sd state=started when: not (r1.changed or r2.changed or r3.changed) - meta: flush_handlers - name: Install bacula-sd apt: pkg=bacula-sd # Create with: # echo $director-dir $(pwgen -sn 64 1) | sudo tee -a /etc/bacula/passwords-sd - name: Ensure /etc/bacula/passwords-sd exists file: path=/etc/bacula/passwords-sd state=file owner=bacula group=bacula mode=0600 - name: Configure bacula template: src=etc/bacula/bacula-sd.conf.j2 dest=/etc/bacula/bacula-sd.conf owner=root group=root mode=0644 notify: - Restart bacula-sd - name: Copy bacula-sd.service copy: src=lib/systemd/system/bacula-sd.service dest=/lib/systemd/system/bacula-sd.service owner=root group=root mode=0644 notify: - systemctl daemon-reload - Restart bacula-sd - meta: flush_handlers - name: Enable bacula-sd service: name=bacula-sd enabled=yes - name: Start bacula-sd service: name=bacula-sd state=started # To avoid bacula creating archives under /mnt/backup/bacula when it's # not a mountpoint, use `chmod 0700 /mnt/backup; chown root:root /mnt/backup` # before mounting the disk. - name: Create /mnt/backup/bacula file: path=/mnt/backup/bacula state=directory owner=bacula group=tape mode=0750