Tags trong Ansible là một cách để đánh dấu các tác vụ trong playbook. Các tag được sử dụng để chỉ định các tác vụ nào sẽ được chạy hoặc bỏ qua khi chạy playbook.
Cách sử dụng tag trong playbook:
- name: Install packages
apt:
name: "{{ item }}"
state: latest
with_items:
- package1
- package2
tags:
- install
Trong ví dụ trên, tác vụ cài đặt các gói package1
và package2
được đánh dấu bằng tag install
.
Cách chạy các tác vụ với tag:
ansible-playbook playbook.yml --tags install
Trong lệnh trên, Ansible chỉ thực hiện các tác vụ được đánh dấu bằng tag install
.
Cách bỏ qua các tác vụ với tag:
ansible-playbook playbook.yml --skip-tags install
Trong lệnh trên, Ansible bỏ qua các tác vụ được đánh dấu bằng tag install
.
Ngoài ra, bạn có thể đánh dấu nhiều tác vụ với cùng một tag, hoặc đánh dấu một tác vụ với nhiều tag khác nhau. Ví dụ:
- name: Install packages
apt:
name: "{{ item }}"
state: latest
with_items:
- package1
- package2
tags:
- install
- package
Trong ví dụ này, tác vụ cài đặt các gói package1
và package2
được đánh dấu với hai tag install
và package
.
- name: Install packages
apt:
name: "{{ item }}"
state: latest
with_items:
- package1
- package2
tags:
- install
- name: Configure packages
template:
src: config.j2
dest: /etc/config
tags:
- configure
Trong ví dụ này, tác vụ cài đặt các gói package1
và package2
được đánh dấu với tag install
, và tác vụ cấu hình file config.j2
được đánh dấu với tag configure
.
Bạn có thể sử dụng các tags trong playbook để chỉ định chỉ chạy các tác vụ cụ thể.
Ví dụ, nếu bạn chỉ muốn thực hiện tác vụ cài đặt Docker, bạn có thể đặt tag install_docker
trên tác vụ đó như sau:
- name: Install Docker
apt:
name: docker-ce
state: latest
tags:
- install_docker
Tương tự, nếu bạn chỉ muốn thực hiện tác vụ xóa Docker, bạn có thể đặt tag remove_docker
trên tác vụ đó như sau:
- name: Remove Docker
apt:
name: docker-ce
state: absent
tags:
- remove_docker
Sau đó, bạn có thể chạy playbook và chỉ định tag để chỉ thực hiện các tác vụ cụ thể. Ví dụ, để chỉ thực hiện tác vụ cài đặt Docker, bạn có thể chạy lệnh sau:
ansible-playbook myplaybook.yml --tags install_docker
Tương tự, để chỉ thực hiện tác vụ xóa Docker, bạn có thể chạy lệnh sau:
ansible-playbook myplaybook.yml --tags remove_docker
Nếu bạn muốn thực hiện cả hai tác vụ, bạn có thể bỏ tag hoặc chỉ định nhiều tag cùng lúc. Ví dụ:
ansible-playbook myplaybook.yml --tags install_docker,remove_docker
Trong trường hợp này, Ansible sẽ thực hiện cả tác vụ cài đặt Docker và xóa Docker.