Ansible
Table of Contents
1. Some of Ansible concepts
1.1. Inventory
1.2. Playbooks
1.3. Modules
1.3.1. ansible.builtin.git
The Git module use HEAD as default branch which triggers ansible-lint warnings, use version: commit_hash or version: main
latest[git]: Result of the command may vary on subsequent runs.
2. Random tasks
Collection of tasks I’ve written over time
2.1. ASCII art
# https://github.com/ansible/ansible-lint/issues/497#issuecomment-477141267 # https://ansible.readthedocs.io/projects/lint/rules/no-changed-when/ - name: Alan | Bash | Create ASCII art for .bashrc template ansible.builtin.shell: | set -o pipefail figlet "{{ ansible_facts['hostname'] }}" | sed -e 's;^;# ;' -e 's; *$;;' args: executable: /bin/bash register: ascii_art changed_when: ascii_art.rc != 0
2.2. Backup cronjob
- name: Alan | cron | Newsboat weekly backup tags: newsboat when: ansible_facts['hostname'] == 'framboise' ansible.builtin.cron: user: alan name: "Backup Newsboat {{ item.name }} every sunday at 15h{{ item.minute }}" minute: "{{ item.minute }}" hour: '15' weekday: '0' job: "/usr/bin/rsync -auq --delete {{ item.src }} {{ item.dest }}" state: present loop: - name: "configuration" minute: "10" src: "deneb:.config/newsboat/" dest: "/home/alan/backup/newsboat/config/" - name: "data" minute: "12" src: "deneb:.local/share/newsboat/" dest: "/home/alan/backup/newsboat/data/"