User Tools

Site Tools


ansible:ansible_tips

Ansible tips and tricks

Replacement in a file

Replace inplace

Replace inplace sshd_config param (at same position)

Ex:

#Port 22
by
Port 2222
or 
Port 2233
---
- hosts: webservers
  tasks:
    - name: Update SSH configuration to be more secure.
      lineinfile:
        dest: /ansible/sshd_config
        regexp: "{{ item.regexp }}"
        line: "{{ item.line }}"
        state: present
      with_items:
        - regexp: '^(.*)PasswordAuthentication (.*)$'
          line: "PasswordAuthentication no"
        - regexp: '^(.*)PermitRootLogin (.*)$'
          line: "PermitRootLogin no"
        - regexp: '^(.*)Port (.*)$'
          line: "Port 2849"

Insert after / before

Use insertafter or insertbefore

 tasks:
  - name: add to ansible hosts file
    lineinfile:
      dest: /ansible/sshd_config
      insertafter: '^\[ansible_ssh_host\]'
      line: " test ansible_ssh_host=172.0.0.3"

Comment the all lines of a file

  tasks:
    - replace:
        path: /ansible/sshd_config
        regexp: '^(?!#)'
        replace: '#'

Copy / backup file

 - name: Ansible Copy using Conditional Statements
   hosts: test_group
   tasks:
 	#The env variables can be passed in:
 	#ex: ansible-playbook ~/playbook.yml -e "env=prod"
     - name: Copy Apache config for production
   	 copy:
     	   src: prod_httpd.conf
     	   dest: /etc/httpd/conf/httpd.conf
   	 when: env == 'prod'
ansible/ansible_tips.txt · Last modified: 2025/02/25 20:18 by manu