[英]Migrating ansible version 1.5.4 to latest ansible version
我已經使用ansible 1.5.4 8個月了。 昨天我發現1.5.4版本不支持mysql_repilcation模塊的login_port。
那是該版本中的錯誤,但它們支持最新版本(我認為>> 1.8)。 但是我已經在1.5.4中運行了50多個ansible腳本,該腳本已在生產端使用
最佳方案是什么?
如果我將1.5.4遷移到最新版本,它將對任何現有的ansible腳本產生影響
是否有可能通過shell命令實現期望輸出。
我被困在大海中間。 請幫助我解決這個問題
- 如果我將1.5.4遷移到最新版本,它將對任何現有的ansible腳本產生影響
這在很大程度上取決於您的劇本/角色,但是我敢肯定,如果不進行更改,它將無法正常工作。 例如,我現在多次閱讀用戶在角色級別上使用sudo
問題:
- roles:
- role: whatever
sudo: yes
這在1.9.1中已被打破。 正式地,它是固定的,但是我已經閱讀過用戶仍然有問題。 通常sudo已被替換為turn 。 即使文檔聲稱仍支持sudo,但顯然並不完全。
我記得另一個變化與ssh傳輸有關,但是只有在使用Ansible玩游戲時重新啟動主機時,才應該迷失這個問題。
我認為sudo / become變化是最大的變化。 如果您想避免麻煩並且不一定需要最新版本,則可以將其升級到1.9之前的版本,並且無需更改即可獲得通過的更多機會。
如果有時間,我建議您使播放器與最新版本兼容。 Ansible 2.0發行版即將推出,並將引入許多非常有用的新功能。
- 是否有可能通過shell命令實現期望輸出。
您是要自動轉換您的劇本/角色? 不,不是這樣,除非您確切地找到問題所在並自己編寫腳本。 :)
我被困在大海中間。 請幫助我解決這個問題
通常,您應該首先在測試/臨時環境上測試Ansible的每個新版本。 如果您沒有測試主機,則可以設置本地VM。 在那里您可以測試並修復您的游戲。
由於ansible 1.7版本不支持mysql_repilcation模塊的login_port。 我找到了一種實現結果的方法。
- name: "stop slaves of existing database server"
shell: >
mysql -uroot -p{{ mysql_exist_slave_database_password }} \
-P{{ default_port }} -h{{ default_host }} -e "stop slave" -s
- name: "Retrieve the Position and binary file number using slave
status"
shell: >
mysql -uroot -p{{ mysql_exist_slave_database_password }} \
-P{{ default_port }} -h{{ default_host }} -e "show slave
status\G" -s
register: output
- name: "start slaves of existing database server"
shell: >
mysql -uroot -p{{ mysql_exist_slave_database_password }} -P{{
default_port }} -h{{ default_host }} -e "start slave" -s
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.