How To Use Variables in Ansible Playbooks
source link: https://www.digitalocean.com/community/tutorials/how-to-use-variables-in-ansible-playbooks
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.
Tutorial
How To Use Variables in Ansible Playbooks
Configuration ManagementAnsible
-
By Erika Heidi
Published onApril 15, 2021 32 views
Ansible is a modern configuration management tool that doesn’t require the use of an agent software on remote nodes, using only SSH and Python to communicate and execute commands on managed servers. This series will walk you through the main Ansible features that you can use to write playbooks for server automation. At the end, we’ll see a practical example of how to create a playbook to automate setting up a remote Nginx web server and deploy a static HTML website to it.
Ansible supports the use of variables to better customize the execution of tasks and playbooks. This way, it’s possible to use the same playbook with different targets and environments.
Variables can come from different sources, such as the playbook file itself or external variable files that are imported in the playbook. Special precedence rules will apply when working with multiple variable sources that define a variable with the same name.
To see how variables work in practice, we’ll create a new test playbook that will print the value of two variables, username
and home_dir
. Create a new file called playbook-02.yml
in your ansible-practice
directory:
nano ~/ansible-practice/playbook-02.yml
Then add the following lines to the new playbook file:
---
- hosts: all
vars:
- username: sammy
- home: /home/sammy
tasks:
- name: print variables
debug:
msg: "Username: {{ username }}, Home dir: {{ home }}"
Save and close the file when you’re done editing.
The vars
section of the playbook defines a list of variables that will be injected in the scope of that play. All tasks, as well as any file or template that might be included in the playbook, will have access to these variables.
To try this playbook on servers from your inventory file, run ansible-playbook
with the same connection arguments you’ve used before when running our first example. Again, we’ll be using an inventory file named inventory
and the sammy user to connect to the remote servers:
ansible-playbook -i inventory playbook-02.yml -u sammy
You’ll see output like this:
Output
PLAY [all] ***********************************************************************************************************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************************************************************************************
ok: [203.0.113.10]
TASK [print variables] ***********************************************************************************************************************************************************************
ok: [203.0.113.10] => {
"msg": "Username: sammy, Home dir: /home/sammy"
}
PLAY RECAP ***********************************************************************************************************************************************************************************
203.0.113.10 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
The print variables
task will use the debug
module to print the values of the two variables we defined in the vars
section of the playbook.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK