Changes

Jump to: navigation, search

Ops535 ansible lab

1,597 bytes added, 15:50, 21 July 2023
m
Protected "Ops535 ansible lab": OER transfer ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
[[Category:rchan]]
<font color='red'><b>Draft - Do not use until this line has been removed.</b></font>
= Objective =
:# Install and configure Ansible on a controller Linux machine
*** ansible 192.168.49.3 -m copy -a "src=/home/rchan/ops535/ansible.txt dest=/tmp/ansible.txt"
** <u><b>Package management</b></u>
*** ansible 192.168.49.3 -m yum dnf -a "name=bind state=latest"
* Playbooks - contains one or multiple plays, each play defines a set of repeatable tasks on one or more managed machines. Playbooks are written in YAML. Every play in the playbook is created with environment-specific parameters for the target machines:
** ansible-playbook -i 192.168.49.3, setup_webserver.yaml
e.g. ansible_doc copy
e.g. ansible_doc yumdnf
</source>
: The following command demonstrates how to install the "bind" package with the "yum" module and the response message under different conditions:
]
}
</pre>
: Try the same ansible ad-hoc command again:
<pre>
[rchan@host ~]$ ansible 192.168.49.3 -m dnf -a "name=bind state=present" -b
192.168.49.3 | SUCCESS => {
"results": []
}
</pre>
: Try to install the latest version of the bind package:
<pre>
[rchan@host ~]$ ansible 192.168.49.3 -m dnf -a "name=bind state=latest" -b
192.168.49.3 | SUCCESS => {
: One of the main ansible module is called "setup", it is automatically called by ansible playbook to gather useful "facts" about remote hosts that can be used in ansible playbooks. It can also be executed directly by the ansible command (/usr/bin/ansible) to check what "facts" are available to a host.
<pre>
[rchan@centos7 ansiblehost ~]$ ansible 192.168.9949.153 3 -m setup192.168.9949.153 3 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.122149.993", "192.168.49.3", "192.168.99.153162" ], "ansible_all_ipv6_addresses": [], "ansible_apparmor"fe80::5054:ff:fe11:6767", { "fe80status"::5054:ff:fe8c:b67c"disabled" ]}, "ansible_architecture": "x86_64", "ansible_bios_date": "04/01/2014", "ansible_bios_version": "1.913.10-52.module_el8.el7_33.20+555+a55c8938",
"ansible_cmdline": {
"BOOT_IMAGE": "(hd0,msdos1)/vmlinuz-34.1018.0-862240.141.41.el7el8_3.x86_64", "LANGcrashkernel": "auto", "quiet": true, "en_CArd.UTFlvm.lv": "cl/swap", "resume": "/dev/mapper/cl-swap", "rhgb": true, "ro": true, "root": "/dev/mapper/cl-8root" }, "ansible_date_time": { "consoledate": "ttyS02021-01-29", "day": "29", "epoch": "1611896933", "hour": "00", "iso8601": "2021-01-29T05:08:53Z", "iso8601_basic": "20210129T000853810313", 
...
  "ansible_swapfree_mb": 2047, "ansible_swaptotal_mb": 2047, "ansible_system": "Linux", "ansible_system_capabilities": [ "" ], "ansible_system_capabilities_enforced": "True", "ansible_system_vendor": "Red Hat", "ansible_uptime_seconds": 21711, "ansible_user_dir": "/home/rchan", "ansible_user_gecos": "Raymond Chan", "ansible_user_gid": 1000, "ansible_user_id": "rchan", "ansible_user_shell": "/bin/bash", "ansible_user_uid": 1000, "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "kvm", "discovered_interpreter_python": "/usr/libexec/platform-python", "gather_subset": [ "all" ],
"module_setup": true
},
"changed": false
}
</pre>
[[OPS435_Ansible_setupOPS535_Ansible_setup|Click here for complete contents of the above]]
= Investigation II: Ansible Playbook =
<pre>
---
- hosts: 192.168.9949.1533 user: rootrchan become: yes
vars:
apache_version: 2.6
motd_warning: 'WARNING: use by ICT ITAS faculty/students only.'
testserver: yes
tasks:
Sample Run:
<pre>
[rchan@centos7 playbookshost ansible]$ ansible-playbook motd-play.yml
PLAY [192.168.9949.1533] **********************************************************************
TASK [Gathering Facts] *******************************************************************ok: [192.168.9949.1533]
TASK [setup a MOTD] **********************************************************************changed: [192.168.9949.1533PLAY RECAP *******************************************************************************192.168.49.3 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
PLAY RECAP *********************************************************************
192.168.99.153 : ok=2 changed=1 unreachable=0 failed=0
</pre>
<pre>
---
- hosts: 192.168.9949.1533 user: rootrchan become: yes
vars:
apache_version: 2.6
motd_warning: 'WARNING: use by ICT ITAS faculty/students only.'
testserver: yes
tasks:
Sample Run:
<pre>
[rchan@centos7 playbookshost ansible]$ ansible-playbook httpd-play.yml
PLAY [192.168.9949.1533] **********************************************************************
TASK [Gathering Facts] *******************************************************************ok: [192.168.9949.1533]
TASK [install apache] ********************************************************************changed: [192.168.9949.1533]
TASK [restart apache] ********************************************************************changed: [192.168.9949.1533]
PLAY RECAP *******************************************************************************192.168.9949.153 3 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
</pre>
: Login to 192.168.49.3 and verify that apache web server has been installed and is up and running. = Investigation III: Using Playbook to config a OPS435 Linux machine CentOS 8.x VM for OPS535 =: You have just installed the latest version of CentOS 78.x on a VM with GNOME Desktopminimal packages. You need to configure it so that you can use it for doing the Labs for OPS435OPS535 labs. The following configuration need to be done on that VM::* update all the packages installed on the VMto their latest version using the dnf module.:* install extra packages repository for enterprise Linux:* install python3 if it is not already installed:* set using the host name to your Seneca user namednf module:* install the git packageusing the dnf module:* create a new user with your Seneca_id (i.e. your Seneca user name) with sudo access:* configure the new user account created in the previous step so that you can ssh to it without password
:* setup a directory structs for completing and organizing labs as shown below:<source lang="bash">
/home/[seneca_id]/ops435ops535/lab0lab1 /home/[seneca_id]/ops435ops535/lab1lab2 /home/[seneca_id]/ops435ops535/lab2lab3 /home/[seneca_id]/ops435ops535/lab3lab4 /home/[seneca_id]/ops435ops535/lab4lab5 /home/[seneca_id]/ops435ops535/lab5lab6 /home/[seneca_id]/ops435ops535/lab6lab7 /home/[seneca_id]/ops435ops535/lab7lab8 /home/[seneca_id]/ops435ops535/lab8a1 /home/[seneca_id]/ops435ope535/lab9a2
</source>
:* create a playbook named "config_ops435ops535_vm_config.yml" to perform all the tasks mentioned above.:* test your playbook with the ansible-playbook command and capture its output when it complete without errorto a text file named "ops535_ansible_lab.txt"
= Ansible Lab 9 Sign-off (Show Instructor) =
== Have the following items ready to show your instructor: ==
: * The Ansible playbook called "config_ops435ops535_vm_config.yml" for configuring the VM mentioned in Lab 1.: * The result of running the playbook "config_ops435ops535_vm_config.yml". Save the result in a file called "lab9_[seneca_id]ops535_ansible_lab.txt"
== Upload the following files to blackboard ==
: * config_ops435ops535_vm_config.yml: * lab9_[seneca_id]ops535_ansible_lab.txt

Navigation menu