OPS635 Lab 3: System Configuration Management using Ansible
In an enterprise environment, the existence of different hardware and operating systems running on production servers is very common. You may find the same software running on different OSes and even different hardware platforms. To manage the software configuration on different platforms by using a script, your script would have to be aware of and account for their differences. Your scripts would need to be written in way that they know how to query the operating environment and execute the appropriate installation and configuration actions based on the operating environment it is running on.
There are commercial and open source configuration management systems which aware of and know how to handle such difference in operating platforms. Ansible is a CMS (Content Management System) that we are going to study for this lab. In this lab, we will start by trying to convert the script that you have written for configuring Nagios on CentOS 7 to an Ansible playbook, test it on your testing environment and then deploy it to a new VM.
Investigation 1: Installing Ansible
- Install Ansible on one of your VMs (we will refert to that as the server).
- If you have not already done so, create an SSH key-pair for the root user on your server and transfer the public portion of it to another VM (we will refer to it as the client). Ensure that you can use it to ssh to root on the other VM without entering a password.
- Modify the inventory file on your server to include the fully qualified domain names of client VM.
- Use the setup module to verify that your Ansible server can run plays on your client VM.
Investigation 2: Creating an Ansible Playbook
- Convert the installation script/puppet manifest from the previous labs into an Ansible playbook that will configure a CentOS VM and another non-CentOS VM as Nagios servers performing the same checks as in lab 1.
Investigation 3: Applying a Playbook
- Use the ansible-playbook command to execute your play on both VMs in the same play. If anything goes wrong, fix it and re-run the play. Continue doing so until the play runs successfully.
Demonstrate your Ansible playbook working in class, then upload it to Blackboard.