흐름제어 구성

ansible.cfg
[student@workstation dev-flowcontrol]$ cat ansible.cfg 
[defaults]
inventory   = inventory
remote_user = devops

[privilege_escalation]
become      = true
inventory
[student@workstation dev-flowcontrol]$ cat inventory 
[databases]
servera.lab.example.com
configure_datatbases.yml
[student@workstation dev-flowcontrol]$ cat configure_database.yml 
---
- yum:
    name: "{{ extra_packages }}"
- get_url:
    url: "http://materials.example.com/task_control/my.cnf"
    dest: "{{ configure_database_path }}"
    owner: mysql
    group: mysql
    mode: 0644
    seuser: system_u
    setype: mysqld_etc_t
    force: yes

- service:
    name: "{{ db_service }}"
    state: started
    enabled: true
playbook.yml
[student@workstation dev-flowcontrol]$ cat playbook.yml 
---
- hosts: all
  vars:
    db_package: mariadb-server
    db_service: mariadb
    db_users:
      - db_admin
      - db_user
    configure_database_path: /etc/my.cnf

  tasks:
    - name: Create the MariaDB users
      user:
        name: "{{ item }}"
      with_items: "{{ db_users }}"
      when: inventory_hostname in groups['databases']

    - name: Install the database server
      yum:
        name: "{{ db_package }}"
      when: db_package is defined

    - name: Install the database server
      include: configure_database.yml
      vars:
        extra_packages:
          - mariadb-bench
          - mariadb-libs
          - mariadb-test
      when: configure_database_path is defined
  • No labels
Write a comment…