Day-02 | Ansible Passwordless Authentication | Inventory | Adhoc commands
Table of Contents
Introduction
This tutorial focuses on setting up passwordless authentication using Ansible, understanding inventory files, and executing adhoc commands. These concepts are essential for efficiently managing and automating tasks across multiple servers in a secure manner. By following this guide, you will be equipped to streamline your Ansible operations.
Step 1: Setup Passwordless Authentication
To enable passwordless authentication in Ansible, follow these steps:
-
Generate SSH Key Pair:
- Open your terminal and run the following command:
ssh-keygen -t rsa
- Press Enter to accept the default file location and optionally set a passphrase.
- Open your terminal and run the following command:
-
Copy the Public Key to Remote Hosts:
- Use the
ssh-copy-id
command to copy your public key to the remote server:ssh-copy-id user@remote_host
- Replace
user
with your username andremote_host
with the IP address or hostname of your remote server.
- Use the
-
Verify Passwordless SSH Login:
- Attempt to SSH into the remote host:
ssh user@remote_host
- If successful, you should not be prompted for a password.
- Attempt to SSH into the remote host:
Tips:
- Ensure that the SSH service is running on the remote host.
- Check your firewall settings if you encounter connectivity issues.
Step 2: Understanding Inventory Files
Ansible inventory files are essential for defining the hosts you will manage. Here’s how to create and configure them:
-
Create an Inventory File:
- Create a new file named
inventory.ini
:touch inventory.ini
- Create a new file named
-
Define Hosts:
- Open the
inventory.ini
file and list hosts like this:[webservers] server1 ansible_host=192.168.1.1 server2 ansible_host=192.168.1.2 [dbservers] db1 ansible_host=192.168.1.3
- Open the
-
Group Hosts:
- You can define groups of hosts for organization and targeting specific commands.
Tips:
- Use the
ansible-inventory
command to view your inventory:ansible-inventory --list -i inventory.ini
Step 3: Executing Adhoc Commands
Adhoc commands allow you to execute tasks on your hosts without writing a full playbook. Here’s how to use them:
-
Run a Simple Command:
- Use the following syntax to run commands on specific hosts:
ansible all -i inventory.ini -m ping
- This command pings all hosts defined in your inventory.
- Use the following syntax to run commands on specific hosts:
-
Use Different Modules:
- You can specify different modules for various tasks. For example, to check disk space:
ansible all -i inventory.ini -m shell -a "df -h"
- You can specify different modules for various tasks. For example, to check disk space:
Tips:
- Use
-u
to specify the SSH user if different from your default. - Combine options to execute more complex commands.
Conclusion
In this tutorial, you learned how to set up passwordless authentication, work with Ansible inventory files, and execute adhoc commands. These foundational skills will significantly enhance your ability to manage multiple servers efficiently. As you progress, consider exploring more advanced topics like creating playbooks and utilizing Ansible roles to further streamline your automation processes.