# Create master ansible node sudo apt-get install ansible sudo apt-get install sshpass -y # Check version if ansible ansible --version # Create host file and add below lines sudo /etc/ansible/hosts [plaatsoft] pi1 pi4 pi5 pi9 # update hostfile (Add all ansible target clients) sudo vi /etc/hosts pi1 192.168.2.101 pi4 192.168.2.104 pi5 192.168.2.105 pi9 192.168.2.109 # Generate private/public ssh key ssh-keygen -t rsa cat /home/pi/.ssh/id_rsa.pub # Login each target client / created authorized_keys and insert public ssh key of ansible master node vi .ssh/authorized_keys # Ping all clients nodes ansible all -m ping # expected output pi9 | SUCCESS => { "changed": false, "ping": "pong" } pi5 | SUCCESS => { "changed": false, "ping": "pong" } pi1 | SUCCESS => { "changed": false, "ping": "pong" } pi4 | SUCCESS => { "changed": false, "ping": "pong" } # Now create first playbook mkdir /etc/ansible/playbook mkdir /etc/ansible/playbook/files vi /etc/ansible/playbook/hello1.yml --- - name: first playbook example hosts: pi1 pi4 pi5 pi9 tasks: - name: Create a file called '/tmp/hello1.txt' with the content 'hello world'. copy: content: hello world dest: /tmp/hello1.txt # Execute first playbook ansible-playbook hello1.yml PLAY [This is a hello-world example] ************************************************************************************************************ TASK [Gathering Facts] ************************************************************************************************************************** ok: [pi5] ok: [pi9] ok: [pi1] ok: [pi4] TASK [Create a file called '/tmp/hello.txt' with the content 'hello world'.] ******************************************************************** ok: [pi9] ok: [pi5] ok: [pi1] ok: [pi4] PLAY RECAP ************************************************************************************************************************************** pi1 : ok=2 changed=1 unreachable=0 failed=0 pi4 : ok=2 changed=1 unreachable=0 failed=0 pi5 : ok=2 changed=1 unreachable=0 failed=0 pi9 : ok=2 changed=1 unreachable=0 failed=0 # Now create second playbook vi /etc/ansible/playbook/files/hello.txt ENTER SOME TEXT vi /etc/ansible/playbook/hello2.yml --- - name: This is a second example hosts: pi1 pi4 pi5 pi9 tasks: - name: Create a file called '/tmp/hello.txt' with content copy: src: ./files/hello2.txt dest: /tmp/hello2.txt # Execute second playbook ansible-playbook hello2.yml PLAY [This is a second example] ***************************************************************************************************************** TASK [Gathering Facts] ************************************************************************************************************************** ok: [pi5] ok: [pi9] ok: [pi1] ok: [pi4] TASK [Create a file called '/tmp/hello.txt' with content] *************************************************************************************** changed: [pi9] ok: [pi5] changed: [pi1] changed: [pi4] PLAY RECAP ************************************************************************************************************************************** pi1 : ok=2 changed=1 unreachable=0 failed=0 pi4 : ok=2 changed=1 unreachable=0 failed=0 pi5 : ok=2 changed=0 unreachable=0 failed=0 pi9 : ok=2 changed=1 unreachable=0 failed=0