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/"
2.3. Install Fedora RPM Fusion
--- - name: System | RPM Fusion | Install distribution-gpg-keys package required for next task ansible.builtin.dnf: name: distribution-gpg-keys state: present - name: System | RPM Fusion | Import RPM Fusion keys ansible.builtin.rpm_key: key: "{{ item }}" state: present loop: - "/usr/share/distribution-gpg-keys/rpmfusion/RPM-GPG-KEY-rpmfusion-free-fedora-{{ ansible_facts['distribution_major_version'] }}" - "/usr/share/distribution-gpg-keys/rpmfusion/RPM-GPG-KEY-rpmfusion-nonfree-fedora-{{ ansible_facts['distribution_major_version'] }}" - name: System | RPM Fusion | Enable RPM Fusion ansible.builtin.dnf: name: "{{ item }}" state: present loop: - "https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-{{ ansible_facts['distribution_major_version'] }}.noarch.rpm" - "https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-{{ ansible_facts['distribution_major_version'] }}.noarch.rpm"