別のネットワークに移動しているサーバーグループがあります。ホスト名と対応する新しいIPアドレスを含むファイルがあります。 Ansibleを使用してこれを達成する方法を見てきましたが、これには各サーバーに固有のプレイブックが必要です。スクリプトを試しましたが、同じ問題が発生しました。
誰かがたとえば提案できますか?ルートとしてログインできると仮定すると、外部サーバーで2つ以上のサーバーのIPアドレスをどのように変更しますか?
Ansibleプレイブックが優先されます。
答え1
私たちの在庫にserverA
、があると仮定しますserverB
。serverC
新しいIPアドレスが必要です。
したがって、最初のステップは、host_vars
ディレクトリにサーバー名を付けたファイルを作成し、新しいIPアドレスを変数として書き込むことです。
ファイルの例host_vars/serverA
:
new_ip: 10.1.0.27
serverB
そのアドレスに対して同じことを行います。serverC
必要に応じてネットワークインターフェイス名に拡張することもできます。
次に、以前に定義された変数を使用してプレイブックを作成します。これはip
存在しません。ここではこの変数の使い方を紹介します。よりアンサーブル文書あなたのニーズに合ったモジュールがある場合は、そうでなければcommand
/を使用してくださいshell
。
- name: Change IP
hosts: serverA serverB serverC
become: yes
tasks:
- name: Set new IP adress
ip: "{{ new_ip }}"
interface: eth0
また、接続が失われる可能性がありますansible
。この質問はSOから来ました。問題を処理し、接続を継続する方法を示します。