Variables

在 playbook 中可以使用 vars 來定義變數,例如:

# playbook.yml
- name: update apt packages
  hosts: web_servers
  become: true
  vars:
    package_name: nginx
  tasks:
    - name: install nginx
      ansible.builtin.apt:
        name: ""
        state: present

你也可以在 inventory 中設定要給 host 使用的變數,例如:

web_server http_port=80 https_port=443

然後在 playbook 中使用 package_name 來取得變數,例如:

# playbook.yml
- name: Set Firewall Configurations
  hosts: web_server
  tasks:
    - name: Allow HTTP
      community.general.ufw:
        rule: allow
        port: ""
        proto: tcp

    - name: Allow HTTPS
      community.general.ufw:
        rule: allow
        port: ""
        proto: tcp

更好的方式,你也可以創建一個與 host 名稱相同的檔案,例如 web_server.yaml,然後在檔案中定義變數,例如:

# web_server.yaml
http_port: 80
https_port: 443

變數是可以與其他字串結合的,例如:

# playbook.yml
- name: do not permit traffic in default zone on port 80/tcp
  ansible.posix.firewalld:
    port: "/tcp"
    permanent: true
    state: disabled

This site uses Just the Docs, a documentation theme for Jekyll.