diff --git a/README.md b/README.md index 89538b1..0d369cf 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,10 @@ Il repository include i Dockerfile per tre immagini Docker basate su Debian 13, Almalinux 9 e Ubuntu 24.04 per riprodurre tramite container i sistemi operativi (attualmente) installati sulle VM in produzione. Per il corretto funzionamento delle immagini, è necessario che esista una chiave pubblica `id_ansible.pub` nelle rispettive cartelle con i Dockerfile. Questa deve ovviamente corrispondere a una chiave SSH privata `id_ansible_lab` che `inventory.yaml` cerca in `~/.ssh/`. + +## Note sparse + +Riguardo il significato di alcuni parametri molto utili presenti tipicamente nei playbook e/o ruoli: + +- `become: true` serve per la cosiddetta _privilege escalation_, cioè "dice" ad Ansible di "diventare" (_become_) l'utente `root` (tipicamente invocando `sudo`); +- `update_cache` si riferisce all'esecuzione dell'aggiornamento della liste dei repository di pacchetti di sistema gestite dai _package manager_ prima di invocare un comando di installazione di nuovi pacchetti. diff --git a/ansible.cfg b/ansible.cfg index 14c8065..e77967f 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -1,2 +1,6 @@ [defaults] +inventory = inventory/inventory.yml host_key_checking = False +stdout_callback = yaml +callback_enabled = timer +roles_path = ./roles diff --git a/inventory.yaml b/inventory/inventory.yml similarity index 100% rename from inventory.yaml rename to inventory/inventory.yml diff --git a/playbooks/webservers.yml b/playbooks/webservers.yml index f653844..7148011 100644 --- a/playbooks/webservers.yml +++ b/playbooks/webservers.yml @@ -2,24 +2,5 @@ hosts: debian become: true - tasks: - - name: Ensure nginx is installed - ansible.builtin.package: - name: nginx - state: present - update_cache: yes - - - name: Copy nginx config file - ansible.builtin.copy: - src: nginx.conf - dest: /etc/nginx/conf.d/test.conf - owner: root - group: root - mode: '0644' - notify: Restart nginx - - handlers: - - name: Restart nginx - ansible.builtin.service: - name: nginx - state: restarted + roles: + - nginx diff --git a/playbooks/files/nginx.conf b/roles/nginx/files/nginx.conf similarity index 100% rename from playbooks/files/nginx.conf rename to roles/nginx/files/nginx.conf diff --git a/roles/nginx/handlers/main.yml b/roles/nginx/handlers/main.yml new file mode 100644 index 0000000..304fead --- /dev/null +++ b/roles/nginx/handlers/main.yml @@ -0,0 +1,5 @@ +- name: Restart nginx + ansible.builtin.service: + name: nginx + state: restarted + diff --git a/roles/nginx/tasks/main.yml b/roles/nginx/tasks/main.yml new file mode 100644 index 0000000..56d042e --- /dev/null +++ b/roles/nginx/tasks/main.yml @@ -0,0 +1,15 @@ +- name: Ensure nginx is installed + ansible.builtin.package: + name: nginx + state: present + update_cache: yes + +- name: Copy nginx config file + ansible.builtin.copy: + src: nginx.conf + dest: /etc/nginx/conf.d/test.conf + owner: root + group: root + mode: '0644' + notify: Restart nginx +