Ansible Conditions
Jump to navigation
Jump to search
Conditions
When
---
- name: Install Apache WebServer
hosts: localhost
tasks:
- name: Install Apache on Ubuntu Server
apt-get:
name: apache2
state: present
when: ansible_os_family == “Ubuntu“
- name: Install Apache on CentOS Server
yum:
name: httpd
state: present
when: ansible_os_family == "RedHat"
---
- name: Enable service on firewalld
hosts: localhost
tasks:
- name: Open port for http
firewalld:
service: http
permanent: true
state: enabled
notify:
- Reload firewalld
- name: Ensure firewalld is running
service:
name: firewalld
state: started
handlers:
- name: Reload firewalld
service:
name: firewalld
state: reloaded
ansible_os_family is a built in variable
you can get a list of all ansible built in variables by running
ansible localhost -m setup
Loops
<pre. --- - name: Install packages thru loop
hosts: localhost vars: packages: [ftp,telnet,htop)
tasks:
- name: Install package
yum name: ‘Template:Items’ state: present with_items: ‘Template:Packages’
---
- name: Install packages thru loop
hosts: localhost
vars:
packages: [ftp,telnet,htop)
tasks:
- name: Install packages
yum
name: ‘{{packages}}’
state: present
--- - name: Create users thru loop
hosts: localhost
tasks:
- name: Create users
user: name: ”Template:Item”” loop: - jerry - kramer - eliane
--- - name: Create users thru loop
hosts: localhost vars: users: [jerry,kramer,eliane]
tasks:
- name: Create users
user: name: ‘Template:Item‘ with_items: ‘Template:Users’