0
我使用hosts_vars
文件中包含的變量列表(在to_install
下)來提供我的deploy.yml
操作手冊。 我hosts_vars
:Ansible:操縱變量名稱
---
clients:
cl1:
to_install:
- banana 8.1
- Firefox 46.0.1
to_uninstall:
- null
我的劇本:
- name: Deploy
hosts: win_clones
vars_files:
- ./hosts_vars
tasks:
- name: Fetching and copying the file on the client ...
win_get_url:
url: 'ftp://172.20.0.5/choco-repo/{{ item }}'
dest: 'C:\Test\{{ item }}'
with_items: "{{ clients[machine].to_install }}"
- name: Installing the package ...
win_chocolatey:
name: "{{ item }}"
state: present
with_items: "{{ clients[machine].to_install }}"
我跑這個戲用下面的命令:
ansible-playbook deploy.yml -e machine=cl1
對於我的劇本的第一個任務我用win_get_url
,我會喜歡將我的變量名稱轉換爲:
banana8.1.nupkg
Firefox46.0.1.nupkg
對於第二個任務我用win_chocolatey
,這是足以只傳遞變量的名稱(不帶版本號):
banana
Firefox
我想魔術應該在 with_items: "{{clients[machine].to_install }}"
發生。我如何才能做到這一點?
謝謝,這個工程的首要任務。我該如何做第二個,即刪除版本號纔能有名字? – diegus
完全像我爲第一個做的那樣,通過玩regex_replace。如果你沒有什麼可以做對的話,這將是沒有趣味的嗎?如果你找不到解決方案,我會幫你的,但我認爲你可以弄清楚。 –
那麼,它只是通過使用'debug:msg =「{{item | regex_replace('','')}}」'來工作,但它似乎有點奇怪。這不是隻是刪除空間?所以我應該得到banana8.1和Firefox46.0.1 – diegus