Ansible snippets

From DWIKI
Revision as of 16:06, 26 February 2024 by Tony (talk | contribs) (→‎Lineinfile)

Systemd

Randomize timer

Create /var/ansible/files/systemd/fstrim.conf

[Timer]
RandomizedDelaySec=3h

Playbook:

  tasks: 
     - name: check if /etc/systemd/system/fstrim.timer.d/ exists
       stat:
         path: /etc/systemd/system/fstrim.timer.d/
       register: override_dir
     - name: create /etc/systemd/system/fstrim.timer.d/
       file:
         path: /etc/systemd/system/fstrim.timer.d/
         state: directory
       when: override_dir.stat.exists == False
     - name: add fstrim.timer override
       copy:
         src: /var/ansible/files/systemd/fstrim.conf
         dest: /etc/systemd/system/fstrim.timer.d/override.conf
       notify: daemon-reload
   handlers:
     - name: daemon-reload
       systemd:
         daemon_reload: yes

Lineinfile

Quoting fun with lineinfile regex

- name: fix the needrestart config
  lineinfile:
    dest: /etc/needrestart/needrestart.conf
    state: present
    regexp: '^#\$nrconf{restart}'
    line: '$nrconf{restart} =  ''a'''
   when: ansible_distribution == 'Ubuntu' and ansible_distribution_major_version == '22'

Comment out a line

- name: comment out a line
  lineinfile:
    dest: /etc/needrestart/needrestart.conf
    state: present
    regexp: '^(foo.*)'
    replace: '# \1'

Files

Check if a file exists

 - name: check for a file
   stat:
     path: /etc/fstab
   register: fstab
- name: print message if exists
  ansible.builtin.debug:
    msg: "File /etc/fstab exists"
  when: fstab.stat.exists

Check if a command exists

   - name: check if mysqld is installed
     shell: which mysqld > /dev/null 2>&1 
     ignore_errors: true
     changed_when: false
     register: mysqld
     failed_when: mysqld.rc == 2