Ansible

更改多台伺服器的ip地址

  • June 24, 2021

我有一組伺服器正在移動到另一個網路。我有一個文件,其中包含主機名和相應的新 IP 地址。我研究瞭如何使用 Ansible 來實現這一點,但這需要每個伺服器都有獨特的劇本。試圖編寫腳本但同樣的問題。

有人可以建議例如。假設您可以以 root 身份登錄,如何從外部伺服器更改 2 台以上伺服器的 IP 地址。

首選 Ansible 劇本。

假設我們有serverA,serverB並且serverC在我們的庫存中。他們需要新的 IP 地址。

所以第一步是在你的host_vars目錄中創建一個文件,命名為你的伺服器,並將新的 IP 地址作為變數寫入其中。

文件範例host_vars/serverA

new_ip: 10.1.0.27

對其相應的地址執行相同的serverB操作。serverC如果需要,您還可以將其擴展到網路介面名稱。

接下來,創建一個使用先前定義的變數的劇本。該ip命令中顯示的模組不存在,我這裡只是展示變數的使用。如果有適合您需求的模組,請參閱Ansible 文件command,否則請使用/ shell

- name: Change IP
   hosts: serverA serverB serverC
   become: yes
   tasks:
     - name: Set new IP adress
       ip: "{{ new_ip }}"
       interface: eth0

另外,請準備好與ansible. SO的這個問題顯示瞭如何處理它並保持連接執行。

引用自:https://unix.stackexchange.com/questions/655413