Skip to main content

Targeting Specific Nodes

1. Mục đích
  • Chia host làm 3 nhóm
    • web_servers:web_servers: 192.168.100.51192.168.100.54 (CentOS)
    • db_servers:db_servers: 192.168.100.52
    • file_servers:file_servers: 192.168.100.53
  • Playbook bao gồm
    • Update package toàn bộ host
    • web server:server: cài apache php
    • db server:server: cài mariadb
    • file server:server: cài samba
2. File playbook
---

- hosts: all
  become: true
  pre_tasks:

  - name: update repo (CentOS)
    dnf:
      update_only: true
      update_cache: true
    when: ansible_distribution in ["CentOS"]

  - name: update repo (Ubuntu)
    apt:
      upgrade: dist
      update_cache: true
    when: ansible_distribution in ["Ubuntu"]
    
- hosts: web_servers
  become: true
  tasks:

  - name: install apache and php (CentOS)
    dnf:
      name:
        - httpd
        - php
      state: latest
    when: ansible_distribution in ["CentOS"]

  - name: install apache and php (Ubuntu)
    apt:
      name:
        - apache2
        - libapache2-mod-php
      state: latest
    when: ansible_distribution in ["Ubuntu"]

- hosts: db_servers
  become: true
  tasks:

  - name: install mariadb (CentOS)
    dnf:
      name:
        - mariadb-server
      state: latest
    when: ansible_distribution in ["CentOS"]

  - name: install mariadb (Ubuntu)
    apt:
      name:
        - mariadb-server
      state: latest
    when: ansible_distribution in ["Ubuntu"]

- hosts: db_servers
  become: true
  tasks:

  - name: install samba
    package:
      name:
        - samba
      state: latest