ANSIBLE20分解大任务练习:
---
- name: Long Playbook
hosts: webgroup
vars:
v_package: httpd
v_service: httpd
v_firewall_pkg: firewalld
v_firewall_svc: firewalld
v_rule:
- http
- https
v_file:
- "/var/www/html/index.html"
tasks:
- name: Install the Packages
yum:
name: "{{ v_package }}"
state: latest
- name: Start
service:
name: "{{ v_service }}"
enabled: true
state: restarted
- name: Install the Firewall
yum:
name: "{{ v_firewall_pkg }}"
state:latest
- name: Start the Firewall
service:
state: started
name: "{{ v_firewall_svc }}"
enabled: true
- name: Open the port for {{ rule }}
firewalld:
service: "{{ item }}"
immediate: true
permanent: true
state: enabled
loop:
"{{ v_rule }}"
- name: Create Placeholder File
copy:
content: "# This file was moved to /etc/other.conf"
dest: "{{ item }}"
loop:
"{{ v_file }}"
- name: Test Web Service
hosts: localhost
vars:
v_url:
- "http://192.168.0.101"
- "http://192.168.0.102"
tasks:
- name: Connect to Internet Web Server
uri:
url: "{{ item }}"
status_code: 200
return_content: yes
loop:
"{{ v_url }}"
register: v_result
when:
ansible_facts['architecture'] == "x86_64"
- name: Show the Result
debug:
var:
v_result
页:
[1]