Changes

Jump to: navigation, search

Ops535 ansible lab

3,671 bytes added, 09:29, 23 November 2018
Reference
= Objectives =
In this lab, we explore the main components of the Ansible configuration management system and its operating environment. we also develop a simple playbook to manage the configuration of a CentOS 7.x VM. For more detail information about ansible, check out the ansible web site at [httphttps://www.ansible.com. httphttps://www.ansible.com]
= Reference =
[https://docs.ansible.com/ansible/latest/user_guide/index.html Ansible Latest User Guide]
== Key Concepts ==
* YAML - a human-readable data serialization language & is commonly used for configuration files. To know more, your can check out the [https://en.wikipedia.org/wiki/YAML wikipedia page here]
* Control machine - (Management node)
* Remote machine - (Controlled node)
* Playbook -
* Inventory file -
* Hosts file -
* Ad hoc commands
** <u><b>shell commands</b></u>
** ansible 192.168.99.153 -a 'date'
** ansible 192.168.99.153 -a 'df'
** ansible 192.168.99.153 -a 'iptables -L -n -v' -u root
** <u><b>copy module</b></u>
** ansible 192.169.99.153 -m copy -a "src=/ops435/ansible.txt dest=/tmp/ansible.txt"
** <u><b>Package management</b></u>
** ansible 192.168.99.153 -m yum -a "name=epel-release status=latest"
 
== Sample runs for some of the Ad hoc commands ==
<pre>
[rchan@centos7 ansible]$ ansible 192.168.99.153 -m copy -a "src=/home/rchan/ops435/ansible/ansible.txt dest=/tmp/ansible.txt"
192.168.99.153 | SUCCESS => {
"changed": true,
"checksum": "837affc90674fb92cdb0ebac6e49ad31a586b37e",
"dest": "/tmp/ansible.txt",
"gid": 1001,
"group": "rchan",
"md5sum": "78ae49d77d28d06173cf2194a3909732",
"mode": "0664",
"owner": "rchan",
"secontext": "unconfined_u:object_r:user_home_t:s0",
"size": 106,
"src": "/home/rchan/.ansible/tmp/ansible-tmp-1542902119.15-117618539513309/source",
"state": "file",
"uid": 1001
}
[rchan@centos7 ansible]$ ansible 192.168.99.153 -m yum -a "name=epel-release state=present"
192.168.99.153 | SUCCESS => {
"changed": false,
"msg": "",
"rc": 0,
"results": [
"epel-release-7-11.noarch providing epel-release is already installed"
]
}
[rchan@centos7 ansible]$ ansible 192.168.99.153 -m yum -a "name=epel-release state=present" -u root
192.168.99.153 | SUCCESS => {
"changed": false,
"msg": "",
"rc": 0,
"results": [
"epel-release-7-11.noarch providing epel-release is already installed"
]
}
[rchan@centos7 ansible]$ ansible 192.168.99.153 -m yum -a "name=epel-release state=latest" -u root
192.168.99.153 | SUCCESS => {
"changed": false,
"msg": "",
"rc": 0,
"results": [
"All packages providing epel-release are up to date",
""
]
}
</pre>
= Pre-Lab arrangement =
* You must have at lease two networked machines
** control node - run ansible to configure remote node
** remote nodes - to be managed by the control node
* You should be to ssh from your control node as a regular user to any of your remote nodes as root user without supplying a login password.
* Python 2.7+ on all nodes
= Lab Procedure =
== Gather all the information available on remote machine ==
<pre>
[rchan@centos7 ansible]$ ansible 192.168.99.153 -m setup
192.168.99.153 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.122.99",
"192.168.99.153"
],
"ansible_all_ipv6_addresses": [
"fe80::5054:ff:fe11:6767",
"fe80::5054:ff:fe8c:b67c"
],
"ansible_architecture": "x86_64",
"ansible_bios_date": "04/01/2014",
"ansible_bios_version": "1.9.1-5.el7_3.2",
"ansible_cmdline": {
"BOOT_IMAGE": "/vmlinuz-3.10.0-862.14.4.el7.x86_64",
"LANG": "en_CA.UTF-8",
"console": "ttyS0",
...
"ansible_userspace_bits": "64",
"ansible_virtualization_role": "guest",
"ansible_virtualization_type": "kvm",
"module_setup": true
},
"changed": false
}
</pre>
[[OPS435_Ansible_setup|Click here for complete contents of the above]]
= Questions =
= Completing the Lab =
1,760
edits

Navigation menu