Friday, July 21, 2017

How to use Variables in Ansible - Simple example

Simple example to demonstrate variables in Ansible example.
This playbook is going to install HTTPD and Firewalld package.
There are two plays - first one will run on client node (node11) and the second one will run on master node (controller)


# Copy from here:

---
# First play
- name: Install apache and start the service
  hosts: node11  ## hosts is the MUST to include key word in playbook to define target servers. It can be single server or group from Ansible inventory. 
  vars: ## vars is the key word to define vaiables in playbook
    web_package: httpd
    firewall_package: firewalld
    web_service: httpd
    firewall_service: firewalld
    firewall_port: http
    webpage: "This is test page created by Ansible playbook"
  tasks: ## tasks is the MUST to include key word in playbook to list down tasks.

  - name: Install web server package
    yum:
      name: "{{ web_package }}"
      state: latest

  - name: Install firewall package
    yum:
      name: "{{ firewall_package }}"
      state: latest

  - name: Start web service
    service:
      name: "{{ web_service }}"
      state: started
      enabled: yes

  - name: Start "{{ firewall_service }}" service
    service:
      name: "{{ firewall_service }}"
      state: started
      enabled: yes

  - name: Allow web service in fiewall
    firewalld:
      service: "{{ firewall_port }}"
      permanent: true
      state: enabled
      immediate: yes

  - name: Create test web page
    copy:
     content: "{{ webpage }}"
     dest: /var/www/html/index.html

# Second play
- name: Verify that web page is accessible from outside
  hosts: controller
  tasks:
  - name: Try to access the test web page
    uri:
      url: http://node11.example.com
      status_code: 200
...

No comments: