Version 4 (modified by 9 years ago) (diff) | ,
---|
Appendix: Installing software using the Ansible Configuration Management tool
Tools:
To run this exercise, you will need two pieces of software. If you haven't already, get or install these now:
omni
installed on your local machine (instructions), andansible
installed on your local machine (find the instructions for your package manager here).
Resources:
- Ansible Resources:
Instructions
2. Establish the Environment
- To run this exercise, you will need an account and two pieces of software. If you haven't already, get or install these now:
- a GENI Portal account (instructions),
omni
installed and configured on your local machine (instructions), andansible
installed on your local machine (find the instructions for your package manager here).Windows users should do the following steps
Windows users should follow the instructions for setting up a separate GENI node for running Ansible.
- Download the webpages and scripts needed for the HelloGENI exercise.
Use
wget
to download the tarball of files onto your local machine and usetar
to uncompress it:wget http://www.gpolab.bbn.com/experiment-support/HelloGENI/hellogeni-install.tar.gz tar zxvf hellogeni-install.tar.gz
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, readyToLogin
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.
- Create your Ansible inventory file:
On your local machine:
$ readyToLogin MYSLICE --useSliceAggregates --ansible-inventory -o $ cat inventory
Example output of running these commands:
$ readyToLogin MYSLICE --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
If your GENI Username is different than your username on your local machine, append the following information to each line of the `inventory` file: ansible_ssh_user = GENIUSERNAME
Your GENIUSERNAME is shown in the header of the GENI Portal in the upper right hand corner.Windows users should copy their 'inventory' file onto their node running the ansible client. - Be sure your private key has been added to your SSH agent:
ssh-add /path/to/your/private/key
- Check to see if your nodes are up and ready.
This command uses the
ping
module to ping the specified nodes (in this caseall
) listed in the inventory file:$ ansible -i inventory all -m ping
Example output showing all of the nodes responding to ping:
$ ansible -i inventory all -m ping client | success >> { "changed": false, "ping": "pong" } server | success >> { "changed": false, "ping": "pong" }
- Try using the ping module in Ansible to only ping
server
orclient
by replacingall
in the above withserver
orclient
.
Ansible commands can be collected into files called Playbooks. Playbooks are in a configuration file format called YAML which is very straightforward. In particular, Ansible Ad Hoc commands easily map to commands used in an Ansible Playbook. |