Ansible Tutorial 01 - Examples of Ansible Ad Hoc Commands
source link: https://fuzzyblog.io/blog/ansible/2016/09/29/examples-of-ansible-ad-hoc-commands.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Ansible Tutorial 01 - Examples of Ansible Ad Hoc Commands
Sep 29, 2016
My writing progress has slowed as of late while I have gone 100% heads down on learning Ansible. Ansible is a provisioning tool which lets you describe a machine or machines as well as how you want them configured. Ansible also offers an ad hoc mode where you can operate on a group of machines and execute a command or commands. These examples are based on an Ansible inventory file located in the directory inventories/ as follows:
file: inventories/production_actual
[web]
# format - english machinename ssh host ssh private key
web1 ansible_ssh_host=ec2-52-41-237-52.us-west-2.compute.amazonaws.com ansible_ssh_private_key_file=/Users/sjohnson/.ssh/fi_nav_sitecrawl.pe
[db]
[log]
Note - in my actual inventory file there are machines in each group section.
Here are some examples:
Execute uptime against all machines in the inventories file with the user ubuntu:
**ansible all -i inventories/production_actual -u ubuntu -a "uptime"**
ec2-52-39-100-178.us-west-2.compute.amazonaws.com | success | rc=0 >>
17:09:56 up 36 days, 4:05, 4 users, load average: 0.99, 1.00, 0.97
ec2-52-89-105-4.us-west-2.compute.amazonaws.com | success | rc=0 >>
17:10:06 up 23 days, 4:17, 2 users, load average: 0.69, 0.53, 0.54
ec2-54-68-16-169.us-west-2.compute.amazonaws.com | success | rc=0 >>
17:11:43 up 22 days, 9:11, 2 users, load average: 0.93, 0.93, 0.89
ec2-52-42-166-105.us-west-2.compute.amazonaws.com | success | rc=0 >>
17:11:23 up 31 days, 7:26, 2 users, load average: 0.00, 0.02, 0.05
52.40.224.171 | success | rc=0 >>
17:10:54 up 20 days, 23:42, 1 user, load average: 0.08, 0.04, 0.05
Execute uptime against all machines in the db group in the inventories file with the user ubuntu:
**ansible db -i inventories/production_actual -u ubuntu -a "uptime"**
ec2-52-39-100-178.us-west-2.compute.amazonaws.com | success | rc=0 >>
17:11:13 up 36 days, 4:06, 4 users, load average: 0.90, 0.97, 0.96
You can also use this to do things like check the amount of free disc space on every box.
**ansible all -i inventories/production_actual -u ubuntu -a "df -h"**
ec2-54-68-16-169.us-west-2.compute.amazonaws.com | success | rc=0 >>
Filesystem Size Used Avail Use% Mounted on
udev 7.5G 12K 7.5G 1% /dev
tmpfs 1.5G 376K 1.5G 1% /run
/dev/xvda1 7.8G 3.9G 3.5G 53% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 7.5G 0 7.5G 0% /run/shm
none 100M 0 100M 0% /run/user
ec2-52-42-166-105.us-west-2.compute.amazonaws.com | success | rc=0 >>
Filesystem Size Used Avail Use% Mounted on
udev 492M 12K 492M 1% /dev
tmpfs 100M 368K 99M 1% /run
/dev/xvda1 7.8G 3.7G 3.7G 51% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 497M 0 497M 0% /run/shm
none 100M 0 100M 0% /run/user
ec2-52-89-105-4.us-west-2.compute.amazonaws.com | success | rc=0 >>
Filesystem Size Used Avail Use% Mounted on
udev 7.5G 12K 7.5G 1% /dev
tmpfs 1.5G 376K 1.5G 1% /run
/dev/xvda1 16G 3.9G 11G 27% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 7.5G 0 7.5G 0% /run/shm
none 100M 0 100M 0% /run/user
ec2-52-39-100-178.us-west-2.compute.amazonaws.com | success | rc=0 >>
Filesystem Size Used Avail Use% Mounted on
udev 32G 12K 32G 1% /dev
tmpfs 6.3G 400K 6.3G 1% /run
/dev/xvda1 2.0T 1.4T 557G 71% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 32G 0 32G 0% /run/shm
none 100M 0 100M 0% /run/user
52.40.224.171 | success | rc=0 >>
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 12K 3.9G 1% /dev
tmpfs 799M 484K 798M 1% /run
/dev/xvda1 7.8G 5.6G 1.9G 76% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 0 3.9G 0% /run/shm
none 100M 0 100M 0% /run/user
Ensure that a package is installed; don't update it if it isn't
**ansible all -i inventories/production_actual -u ubuntu -m apt -a "name=tree state=present"**
ec2-52-39-100-178.us-west-2.compute.amazonaws.com | success >> {
"changed": false
}
ec2-52-89-105-4.us-west-2.compute.amazonaws.com | success >> {
"changed": false
}
ec2-54-68-16-169.us-west-2.compute.amazonaws.com | success >> {
"changed": false
}
ec2-52-42-166-105.us-west-2.compute.amazonaws.com | success >> {
"changed": false
}
52.40.224.171 | success >> {
"changed": false
}
**ansible all -i inventories/production_actual -u ubuntu --become -m apt -a "name=htop state=present"**
References:
As always thanks to Dv who pushed me off the proverbial Ansible cliff and has supported me all the way down the learning curve.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK