Hello Guys!!
In this post let's explore the installation options for Ansible Core. We can get the detailed Documentation provided by Ansible in the Installation Guide. I've also gone through the Amazing Book : Ansible for DevOps Here he explained that beginners can start with playing in Laptop by setting up the Virtual Boxes for Ansible learnings.
Today I have started experimenting with Ansible installation on the CentOS 7 Vagrant box, As you know Ansible is from the RedHat.
Ansible having 3300+ modules freely available. At the end of the installation, we can test the connectivity with the 'ping' and 'shell' module which will be referred to the inventory hosts which is present in the "/etc/ansible/hosts" location.
Prerequisites for Ansible installation
- Create Vagrant Boxes where Ansible engine runs on the master node and SSH-Agents will run on two different nodes.
- PasswordAuthentication enable for sshd_config
- SSH Connectivity with ssh-keygen
Ansible Architecture |
Steps for Installing and Configuration of Ansible on CentOS 7
Vagrant.configure(2) do |config| #config.vm.box = "centos/8" config.vm.boot_timeout=600 config.landrush.enabled = true config.vm.define "mstr" do |mstr| mstr.vm.host_name = "mstr.devopshunter.com" mstr.vm.box= "ansible/tower" mstr.vm.network "private_network", ip: "192.168.33.100" mstr.vm.provider "virtualbox" do |vb| vb.cpus = "2" vb.memory = "2048" end end config.vm.box = "centos/8" config.vm.define "node1" do |node1| node1.vm.network "private_network", ip: "192.168.33.110" node1.vm.hostname = "node1.devopshunter.com" node1.vm.provider "virtualbox" do |vb| vb.cpus = "2" vb.memory = "1024" end end config.vm.define "node2" do |node2| node2.vm.network "private_network", ip: "192.168.33.120" node2.vm.hostname = "node2.devopshunter.com" node2.vm.provider "virtualbox" do |vb| vb.cpus = "2" vb.memory = "1024" end end endYou can run `vagrant up' to bring up the 3 boxes as defined in the
sudo yum install -y epel-release sudo yum install -y ansible # To get the latest version of ansible use the following # Remove ansible older version sudo yum remove -y ansible # Install python3 includes pip3 sudo yum install -y python3 wget https://bootstrap.pypa.io/get-pip.py python3 get-pip.py python3 -m pip install --upgrade pip pip3 install ansible==4.6.0 --user ansible --version # this will show warning older version python3 -c 'from ansible_collections.ansible_release import ansible_version; print(ansible_version)'
Step 2: Change sshd_config file on Vagrant based CentOS box
Better to edit with root user the /etc/ssh/sshd_config cotaining PasswordAuthentication no to PasswordAuthentication yes and restart the sshd services.
vi /etc/ssh/sshd_config # Search and comment #PasswordAuthentication no # Search uncomment for yes value PasswordAuthentication yesSave the file and restart the sshd services on all the CentOS boxes.
systemctl restart sshd # Restart sshd service systemctl status sshd #Check the status
Confirmation on the sshd_config changes as shown below:
ssh_config modified and restart service in CentOS 7 |
same step 2 ssh_config changes can be repeated on the all target boxes as well.
ssh service restart on remote nodes |
Step 3: Ansible inventory creation on Controller
Update the hostname and IP address correctly mapped on VMs. There are many ways to add the machines on your Ansible Engine running VM. Same IP or VM can be part of multiple groups also allowed. Example host2 is member in appservers and also dbserver due to its capabilities we can assign.
[nodes] 192.168.33.210 192.168.33.220
Step 4: SSH Key Generation with RSA algorithm.
We can use any algorithm
ssh-keygen -t rsa -b 4096 -C "ansible-engine" ls -rlta ~/.ssh ssh-copy-id -i ~/.ssh/id_rsa.pub vagrant@192.168.33.210 # Say 'yes' to add to known_hosts # Enter the password to connect remote host # Validate ssh vagrant@192.168.33.210 exit # exit from remote host # Repeat above steps for remaining hosts ssh-copy-id -i ~/.ssh/id_rsa.pub vagrant@192.168.33.220 ssh vagrant@192.168.33.220 exit
ssh-keygen for ansible |
Observe that two rsa files created in the ~/.ssh folder one is key and other one with .pub extentiona is public key
Step 5: Adding SSH Key to Authorized keys of remote hosts
ssh-copy-id -i ~/.ssh/id_rsa.pub vagrant@192.168.33.210 ssh-copy-id -i ~/.ssh/id_rsa.pub vagrant@192.168.33.220
SSH copy id |
ansible -m ping all ansible -m ping nodes
Ansible installation on Ubuntu
As we have multiple ways to install the Ansible Core on any Linux platform, Here we will see the option to install it on Ubuntu 20.04. Specialty of this is we will be getting the latest installation because the repository will be update on your Ubuntu System.
You can see the video session for Ansible installation on Ubuntu with latest repository updated :
sudo apt update sudo apt install software-properties-common sudo add-apt-repository --yes --update ppa:ansible/ansible sudo apt install ansible
Please write your feedback on this post, and also your experiment problems if in case you followed my steps.
No comments:
Post a Comment