In [ ]:
    
cd /notebooks/exercise-00
    
In [ ]:
    
cat inventory
    
Now check if you can ping the local host.
In [ ]:
    
# Check connections versus the local host in the "course" group
!ansible -i inventory -m ping course
    
In [ ]:
    
# Pinging all hosts gives some errors too, due to missing hosts or no ssh-key exchange
!ansible -i inventory -m ping all
    
You can split your servers in many inventory files, like
# staging inventory file
# run with
# ansible -i staging ...
 [ws]
 staging-ws-[0:3]
 [jboss]
 staging-boss-[0:6]
# production inventory file
# run with
# ansible -i production ...
 [ws]
 ws-[0:3]
 [jboss]
 boss-[0:6]
To run a group of tasks with ansible, just:
A playbook is a list of tasks in yml format, something like
#
# playbook.yml
#
- name: >-
    All public traffic is redirected via https.
    Beware: in real world, if your site accept credentials,
            you should close port 80 instead!
  uri:
    url: http://{{server_host}}/
    follow_redirects: none
    status_code: 301
- name: This webapp  is served
  uri:
    url: https://{{server_host}}/webapp-1
    validate_certs: false
    status_code: 200
    HEADER_testflag: test
- name: The WS is serverd and requires authentication
  uri:
    url: https://{{server_host}}/rest/v1/method
    validate_certs: false
    status_code: 401
In this case, instead of making actual installation|setup tasks, we just created a testsuite validating our deployment. Now we must write another playbook which takes care of deployng the actual machine.
In [ ]:
    
!cat python-course-test.yml
    
In [ ]:
    
!ansible-playbook -i inventory python-course-test.yml
    
As you can see something is missing: this playbook is not going to modify our machine but only test that everything is in place.
See ansible-playbook --check and --diff for further infos.
We can run a setup playbook, conventionally named site.yml (click to edit).
In [ ]:
    
!cat site.yml
    
In [ ]:
    
!ansible-playbook -i inventory site.yml --limit=course  # in this case the --limit does not change anything ;)
    
In [ ]: