In our earlier Ansible tutorial, we discussed the installation & configuration of Ansible. Now in this ansible tutorial, we will learn some simple ansible commands that we will use to manage our infrastructure. Consider this as an Ansible commands cheatsheet.
So let us start by looking at the syntax of a simple ansible commands,
$ ansible <group> -m <module> -a <arguments>
Here, we can also use a single host or all in place of <group> & <arguments> are optional to provide. Now let’s look at some basic commands to use with ansible,
Ansible Commands CheatSheet
Check the connectivity of hosts
We have used this command in our previous tutorial also. The command to check the connectivity of hosts is
$ ansible <group> -m ping
Rebooting hosts
$ ansible <group> -a “/sbin/reboot”
R
Checking host’s system information
Ansible collects the system’s information for all the hosts connected to it. To display the information of hosts, run
$ ansible <group> -m setup | less
Secondly, to check a particular info from the collected information by passing an argument,
$ ansible <group> -m setup -a “filter=ansible_distribution”
Transferring files
For transferring files we use a module ‘copy’ & complete command that is used is
$ ansible <group> -m copy -a “src=/home/dan dest=/tmp/home”
Managing users
So to manage the users on the connected hosts, we use a module named ‘user’ & comamnds to use it are as follows,
Creating a new user
$ ansible <group> -m user -a “name=testuser password=<encrypted password>”
Deleting a user
$ ansible <group> -m user -a “name=testuser state=absent”
Note:- To create an encrypted password, use the ‘mkpasswd –method=sha-512’ command.
Changing permissions & ownership
So for changing ownership of files of connected hosts, we use a module named ‘file’ & commands used are
Changing permission of a file
$ ansible <group> -m file -a “dest=/home/dan/file1.txt mode=777”
Changing the ownership of a file
$ ansible <group> -m file -a “dest=/home/dan/file1.txt mode=777 owner=dan group=dan”
Managing Packages
So, we can manage the packages installed on all the hosts connected to ansible by using ‘yum’ & ‘apt’ modules & the complete commands used are,
Make sure the package is installed & update it
$ ansible <group> -m yum -a “name=ntp state=latest”
Make sure the package is installed & don’t update it
$ ansible <group> -m yum -a “name=ntp state=present”
Make sure the package is at a specific version
$ ansible <group> -m yum -a “name= ntp-1.8 state=present”
Make sure the package is not installed
$ ansible <group> -m yum -a “name=ntp state=absent”
Managing services
So to manage services with ansible, we use a modules ‘service’ & complete commands that are used are,
Starting a service
$ ansible <group> -m service -a “name=httpd state=started”
Stopping a service
$ ansible <group> -m service -a “name=httpd state=stopped”
Restarting a service
$ ansible <group> -m service -a “name=httpd state=restarted”
These were our some important commands for Ansible Commands Cheatsheet. Pleas feel free to send in any questions or queries using the comment box below.
We are giving you exclusive deals to try Linux Servers for free with 100$ credit, check these links to claim your 100$,
DigitalOcean - 100$ free credit & Linode - 100$ free credit
Check some Exclusive Deals, HERE.
Also, check out DevOps Book You should read section.
Great article, was looking for something like this.
mispelled introduction in title.
Thanks, corrected it.
Since the way ansible works is to set the state some terminology used in this article might be misleading….
In the “Managing Packages” you should replace “check if” to “Assure the package is installed (either by being already installed or by ansible installing itself) or absent (in this case it would uninstall it if present).
Otherwise is an excelent ansible 1-liner cookbook.
Thanks for the suggestion, will update article accordingly.
Incredible points. Sound arguments. Keep up the great work.