Ansible snippets: Difference between revisions

From DWIKI
(Created page with "=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: ov...")
 
 
(6 intermediate revisions by the same user not shown)
Line 31: Line 31:
         systemd:
         systemd:
           daemon_reload: yes
           daemon_reload: yes
=Lineinfile=
*[https://docs.ansible.com/ansible/latest/collections/ansible/builtin/lineinfile_module.html Lineinfile documentation]
==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
    backrefs: true
    regexp: '^(foo.*)'
    line: '# \1'
==Check for string in file==
    - name: Check for rotate setting
      lineinfile:
        path: "{{ rotatepath }}"
        regex: '^ *rotate 180$'
        state: absent
      register: result
    - debug: msg="{{ inventory_hostname }} {{ result.found }}"
=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

Latest revision as of 16:29, 18 March 2024

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
    backrefs: true
    regexp: '^(foo.*)'
    line: '# \1'


Check for string in file

   - name: Check for rotate setting
     lineinfile:
       path: "Template:Rotatepath"
       regex: '^ *rotate 180$'
       state: absent
     register: result
   - debug: msg="Template:Inventory hostname Template:Result.found"

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