簡體   English   中英

將Ansible版本1.5.4遷移到最新的Ansible版本

[英]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. 如果我將1.5.4遷移到最新版本,它將對任何現有的ansible腳本產生影響

  2. 是否有可能通過shell命令實現期望輸出。

我被困在大海中間。 請幫助我解決這個問題

  1. 如果我將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發行版即將推出,並將引入許多非常有用的新功能。

  1. 是否有可能通過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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM