Task:
There is data on all app servers in Stratos DC. The Nautilus development team shared some requirement with the DevOps team to alter some of the data as per recent changes. The DevOps team is working to prepare an Ansible playbook to accomplish the same. Below you can find more details about the task.
Create a playbook.yml under /home/thor/ansible on jump host; an inventory is already place under /home/thor/ansible on Jump host itself.
We have a file /opt/security/blog.txt on app server 1. Using Ansible replace module replace string xFusionCorp to Nautilus in that file.
We have a file /opt/security/story.txt on app server 2. Using Ansiblereplace module replace string Nautilus to KodeKloud in that file.
We have a file /opt/security/media.txt on app server 3. Using Ansible replace module replace string KodeKloud to xFusionCorp Industries in that file.
Note: Validation will try to run playbook using command ansible-playbook -i inventory playbook.yml so please make sure playbook works this way, without passing any extra arguments.
Step 1) Verify the inventory file
thor@jump_host ~/ansible$ cat inventory
stapp01 ansible_host=172.16.238.10 ansible_ssh_pass=Ir0nM@n ansible_user=tony
stapp02 ansible_host=172.16.238.11 ansible_ssh_pass=Am3ric@ ansible_user=steve
stapp03 ansible_host=172.16.238.12 ansible_ssh_pass=BigGr33n ansible_user=banner
thor@jump_host ~/ansible$
thor@jump_host ~/ansible$ cat ansible.cfg
[defaults]
host_key_checking = False
thor@jump_host ~/ansible$
Step 2) Create a playbook
thor@jump_host ~/ansible$ cat playbook.yml
---
- name: create a blank replace
hosts: all
become: true
tasks:
- name: Replace a String
replace:
path: /opt/security/blog.txt
regexp: 'xFusionCorp'
replace: "Nautilus"
when: (ansible_user == "tony")
- name: Replace a String
replace:
path: /opt/security/story.txt
regexp: 'Nautilus'
replace: "KodeKloud"
when: (ansible_user == "steve")
- name: Replace a String
replace:
path: /opt/security/media.txt
regexp: 'KodeKloud'
replace: "xFusionCorp Industries"
when: (ansible_user == "banner")
Step 3) Run the playbook
thor@jump_host ~/ansible$ ansible-playbook -i inventory playbook.yml
PLAY [create a blank replace] ************************************************************************************************
TASK [Gathering Facts] *******************************************************************************************************
ok: [stapp03]
ok: [stapp02]
ok: [stapp01]
TASK [Replace a String] ******************************************************************************************************
skipping: [stapp02]
skipping: [stapp03]
changed: [stapp01]
TASK [Replace a String] ******************************************************************************************************
skipping: [stapp01]
skipping: [stapp03]
changed: [stapp02]
TASK [Replace a String] ******************************************************************************************************
skipping: [stapp01]
skipping: [stapp02]
changed: [stapp03]
PLAY RECAP *******************************************************************************************************************
stapp01 : ok=2 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
stapp02 : ok=2 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
stapp03 : ok=2 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0