我在Ubuntu中遇到Ansible 2.2的問題。Ansible包含每個主機的變量
我的劇本包含以下內容:
---
- hosts: all
become: yes
roles:
- mysql
我用從這裏https://galaxy.ansible.com/geerlingguy/ MySQL的作用,但改名所有MySQL
本地。在劇本的默認文件夾是包含參數文件:
mysql_datadir: /var/lib/mysql
就這樣,Ansible工作正常。但現在我想每個主機的具體配置如下解釋:http://docs.ansible.com/ansible/playbooks_best_practices.html
所以我創建的文件inventories/host_vars/test.yml
,去掉了一個在任務的默認文件夾,並更新了劇本以下幾點:
---
- hosts: all
become: yes
roles:
- mysql
tasks:
- name: include vars
include_vars: inventories/host_vars/test.yml
現在Ansible不會接受這個;它表示變量未設置:
致命:[]:失敗! => {「failed」:true,「msg」:「該字段'args'有一個無效值,其中包含一個未定義的變量,錯誤是:'mysql_datadir'未定義\ n \ n錯誤似乎是已經在'/home/michael/Ansible/Playbooks/roles/mysql/tasks/setup-Debian.yml':第24行,第3列,但可能\ n在文件的其他地方取決於確切的語法問題。\ n \ n此問題的行似乎是:\ n \ n \ N-名稱:刪除後apt軟件包創建InnoDB日誌文件的初始安裝\ n ^這裏\ n「}
傳遞通過命令行參數不工作問題。我該如何解決這個問題?
角色在任務之前執行。但是如前所述,如果使用正確,host_vars將自動工作。 – dgw