Ansible 是一種開源的自動化設定管理和部署工具,可以幫助管理員在多台伺服器上自動執行任務。
在 Ansible 中,Playbook 是用來描述自動化任務的 YAML 檔案。
使用變數(variables)是 Playbook 功能的一個重要部分,它可以讓你的 Playbook 更靈活、可重複使用且易於維護。
可以在 Playbook、inventory 檔案、vars 檔案或使用 -e
參數在命令列中定義變數。
範例:
在 Playbook 中定義變數:
--- - name: Set up web server hosts: webservers vars: http_port: 80 max_clients: 200
在 inventory 檔案中定義變數:
[webservers] web1.example.com http_port=80 max_clients=200 web2.example.com http_port=8080 max_clients=100
可以在任務、範本、條件語句等地方使用變數。
範例:
- name: Ensure Apache is running ansible.builtin.service: name: httpd state: started enabled: yes when: http_port == 80
在某個任務執行後,可以透過 register
關鍵字將結果儲存到一個變數中。
範例:
- name: Check if package is installed ansible.builtin.package_facts: register: package_info - name: Display package information ansible.builtin.debug: var: package_info
Ansible 提供了一些內建的特殊變量,如 inventory_hostname
、ansible_facts
等。
範例:
- name: Display the current host's name ansible.builtin.debug: var: inventory_hostname
Ansible 中,變數的優先權從低到高依序為:預設值、inventory 檔案中定義的變數、Playbook 中的變數、命令列參數。具有較高優先權的變數值會覆寫較低優先權的變數值。
了解 Ansible Playbook 變數的基本概念和用法後,你可以根據實際需求靈活運用變量,優化你的自動化任務。
以上是Ansible playbook變數(變數基本用法)的詳細內容。更多資訊請關注PHP中文網其他相關文章!