botang 发表于 2020-8-17 20:35:44

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]
查看完整版本: ANSIBLE20分解大任务练习: