This is an old revision of the document!
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"
- 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'
- name: Backup file if it exists
hosts: localhost
tasks:
- name: Check if the file exists
stat:
path: /path/to/your/file
register: file_stat
- name: Create a backup if the file exists
copy:
src: /path/to/your/file
dest: "/path/to/backup/file_{{ ansible_date_time.iso8601 }}.bak"
remote_src: yes
when: file_stat.stat.exists
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"