Getting Started with Ansible 09 - Targeting Specific Nodes
Jump to navigation
Jump to search
Overview
Ansible is an incredible configuration management and provisioning utility that enables you to automate all the things. In this series, you'll learn everything you need to know in order to use Ansible for your day-to-day administration duties. In video #9, we split our inventory file into groups, and look at how to run tasks on nodes based on their group.
Relevant Links |
---|
Original Video |
install_apache.yml
--- - hosts: all become: true tasks: - name: install apache and php for Ubuntu servers apt: name: - apache2 - libapache2-mod-php state: latest update_cache: yes when: ansible_distribution == "Ubuntu" - name: install apache and php for CentOS servers dnf: name: - httpd - php state: latest update_cache: yes when: ansible_distribution == "CentOS"
inventory (updated with groups)
[web_servers] 172.16.250.132 172.16.250.248 [db_servers] 172.16.250.133 [file_servers] 172.16.250.134
site.yml
--- - hosts: all become: true tasks: - name: install updates (CentOS) dnf: update_only: yes update_cache: yes when: ansible_distribution == "CentOS" - name: install updates (Ubuntu) apt: upgrade: dist update_cache: yes when: ansible_distribution == "Ubuntu" - hosts: web_servers become: true tasks: - name: install apache and php for Ubuntu servers apt: name: - apache2 - libapache2-mod-php state: latest when: ansible_distribution == "Ubuntu" - name: install apache and php for CentOS servers dnf: name: - httpd - php state: latest when: ansible_distribution == "CentOS"
site.yml (second version)
--- - hosts: all become: true pre_tasks: - name: install updates (CentOS) dnf: update_only: yes update_cache: yes when: ansible_distribution == "CentOS" - name: install updates (Ubuntu) apt: upgrade: dist update_cache: yes when: ansible_distribution == "Ubuntu" - hosts: web_servers become: true tasks: - name: install apache2 package apt: name: - apache2 - libapache2-mod-php state: latest when: ansible_distribution == "Ubuntu" - name: install httpd package dnf: name: - httpd - php state: latest when: ansible_distribution == "CentOS"
site.yml (third version)
--- - hosts: all become: true pre_tasks: - name: install updates (CentOS) dnf: update_only: yes update_cache: yes when: ansible_distribution == "CentOS" - name: install updates (Ubuntu) apt: upgrade: dist update_cache: yes when: ansible_distribution == "Ubuntu" - hosts: web_servers become: true tasks: - name: install httpd package (CentOS) dnf: name: - httpd - php state: latest when: ansible_distribution == "CentOS" - name: install apache2 package (Ubuntu) apt: name: - apache2 - libapache2-mod-php state: latest when: ansible_distribution == "Ubuntu" - hosts: db_servers become: true tasks: - name: install httpd package (CentOS) dnf: name: mariadb state: latest when: ansible_distribution == "CentOS" - name: install mariadb server apt: name: mariadb-server state: latest when: ansible_distribution == "Ubuntu"
site.yml (fourth version)
--- - hosts: all become: true pre_tasks: - name: install updates (CentOS) dnf: update_only: yes update_cache: yes when: ansible_distribution == "CentOS" - name: install updates (Ubuntu) apt: upgrade: dist update_cache: yes when: ansible_distribution == "Ubuntu" - hosts: web_servers become: true tasks: - name: install httpd package (CentOS) dnf: name: - httpd - php state: latest when: ansible_distribution == "CentOS" - name: install apache2 package (Ubuntu) apt: name: - apache2 - libapache2-mod-php state: latest when: ansible_distribution == "Ubuntu" - hosts: db_servers become: true tasks: - name: install mariadb server package (CentOS) dnf: name: mariadb state: latest when: ansible_distribution == "CentOS" - name: install mariadb server apt: name: mariadb-server state: latest when: ansible_distribution == "Ubuntu" - hosts: file_servers become: true tasks: - name: install samba package package: name: samba state: latest