흐름제어 구성
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
Add Comment