Version 11 (modified by 10 years ago) (diff) | ,
---|
Title of the Experiment
4. Configure and Initialize
omni
comes with a script, readyToLogin
which finds the login information for nodes in your slice.
As of omni
version 2.8, it has an --ansible-inventory
flag which generates the Ansible inventory, which is a flat file which tells ansible the name and login information for your nodes.
On your local machine:
readyToLogin MYSLICE --useSliceAggregates --ansible-inventory -o cat inventory ansible all -m ping -i inventory
Here is example output of running these commands:
$ readyToLogin ansible --useSliceAggregates --ansible-inventory -o Host info saved in inventory file: /Users/jdoe/projects/GENI/hellogeni/inventory $ cat inventory client ansible_ssh_host=pc3.instageni.clemson.edu ansible_ssh_port=33850 server ansible_ssh_host=pcvm3-6.instageni.clemson.edu $ ansible all -m ping -i inventory client | success >> { "changed": false, "ping": "pong" } server | success >> { "changed": false, "ping": "pong" }
5. Execute Experiment
The following are some example Ansible commands. |
apt
module is used to installed packages:
ansible [-i inventory] [all/server/client] -s -m apt -a "name=apache2 update_cache=yes"
shell
module is used to execute an arbitrary shell command:
ansible [-i inventory] [all/server/client] -s -m shell -a "/usr/sbin/a2enmod status"
file
module is used to manipulate files:
ansible [-i inventory] [all/server/client] -s -m file -a "path=/var/www/html state=absent"
synchronize
module is an implementation of rsync
and is used to efficiently synchronize files between your local machine and the node:
ansible [-i inventory] [all/server/client] -s -m synchronize -a "src=website/index.html dest=/var/www"
lineinfile
module is used to see if an arbitrary line exists in a file:
ansible [-i inventory] [all/server/client] -s -m lineinfile -a "line='ExtendedStatus On' dest=/etc/apache2/conf.d/extendedstatus create=yes state=present"
service
module is used to start/stop/restart/etc services:
ansible [-i inventory] [all/server/client] -s -m service -a "name=apache2 state=restarted"