Some Basic Ansible Playbooks
As a system administrator, you will need to perform a lot of tasks on a regular basis. Instead of doing these tasks manually through the command line, you can use Ansible & Ansible Playbooks to automate your tasks which would make your work easier as well as efficient. Of course, you will first need to install and connect Ansible to the machines you need to manage but once you do that, these playbooks will make your work very easy. These are some basic ansible playbooks to help you get started!
Configuring yum repo on client side
One of the most basic tasks, you will need to is to know how to configure a basic yum repository on a remote machine to get the required packages. Below is a screenshot for creating a yum repository.

You do not need to write the ‘.repo’ extension with the file name since the module yum_repository will do it automatically for you. The rest of it is quite simple if you have done RHCSA Training. Here is the code for configuring yum repo on client side:
---
- name: configure a sample yum repo
hosts: 192.0.0.6
tasks:
- name: install example repo
yum_repository:
file: example
name: example-internal
description: networknuts yum repo
baseurl: http://material.example.com/yum/repository/
enabled: yes
gpgcheck: no
Update all the packages on a remote machine
For updating all the packages on a remote machine, you’d generally give the command yum update but when you wish to do it through Ansible, you can simple use an asterisk (works as a wildcard) which will automatically update all the packages to the latest version.



Here is the code for the updating all packages on a remote machine:
---
- name: update all packages
hosts: all
tasks:
- name: update all pkgs
yum:
name: '*'
state: latest
Create a group and then put the user in that group
This is a very simply playbook which will really help you as a system administrator since user management is one of the most recurring tasks in your job profile. This playbook will create a group and then a user which will also be made a part of said group.



As you can see, we have also given the user a custom UID and comment. This of course is optional. Here is the code for creating a group, a user and then putting the user into that group:
---
- hosts: all
tasks:
- name: create a group
group:
name: mygroup
state: present
- name: create a user in the group
user:
name: aryan123
comment: "Aryan Srivastava"
uid: 1998
group: mygroup
Creating a sample Apache Server
A simple httpd server is probably the most crucial part of RHCE Training as well as of a system administrator’s job. It is very easy and can really help you a lot in the long run. This playbook is a little long but if you go through it, it is actually quite simple to understand.



The first step of course is to install httpd which is the package name of Apache, after this we create the index.html file in the location /home/573855.cloudwaysapps.com/hfjzxghgzg/public_html/html. Once we do this, we need to allow certain ports into our firewall service. The last step is to restart httpd or Apache service for the changes to take affect. Here is the code for the sample Apache server:
---
- name: configuring an apache server
hosts: all
tasks:
- name: installing httpd package
dnf:
name: httpd
state: present
- name: configuring index.html file
copy:
content: " Input content here "
dest: /home/573855.cloudwaysapps.com/hfjzxghgzg/public_html/html/index.html
- name: adding http in firewalld
firewalld:
service: http
permanent: true
enabled: true
- name: adding https in firewalld
firewalld:
service: https
permanent: true
enabled: true
- name: restart httpd
service:
name: httpd
state: restart
These are the some of the most essential playbooks to use with Ansible in a Linux environment. You can read my previous entry for essential playbooks here.
More Knowledge
If you are completely new to Linux, I would suggest that you go through the basic Linux program also known as RHCSA: Linux Training
If you are an expert with Linux, grow your career with RHCE, AWS, Devops, Openstack or Openshift.
Recent Comments