GNU/Linux >> Linux の 問題 >  >> Linux

Ansibleシステムロールを使用してネットワーク設定を構成する方法

これは、Ansibleシステムの役割を使用したシリーズの2番目の記事です。前回の記事では、Ansibleとシステムの役割を紹介し、いくつかの例を示しました。システムロールは、SELinux、ネットワーク設定、NTPなどのOSレベルのタスクを管理するのに役立ちます。その記事では、system.role-selinuxを使用してSELinuxモードを変更した例を見ました。 役割。この記事では、1つのプレイブックでリモートマシンのネットワーク接続を変更できるように、ネットワークの役割について詳しく説明します。

NetworkManagerは、ネットワークインターフェイスや接続の構成などのネットワーク設定を管理します。基本的には、ネットワーク設定を監視および管理するデーモンです。 /etc/sysconfig/network-scripts内のファイルを使用します それらを保存します。 nmcli シェルプロンプトから接続ファイルを作成および編集するために使用されるユーティリティです。ローカルマシンの接続を一覧表示するには:

$ nmcli dev status

DEVICE		TYPE		STATE			CONNECTION
eno0		ethernet	connected		eno0
eno1		ethernet	disconnected		---
virbr0		bridge		connected		virbr0

上記の出力では、さまざまな列を確認できます。最初の列、デバイス 、はネットワークインターフェイスを示します。 タイプ 列は、これがどのタイプの接続であるかを示しています。 状態 列は接続のステータスを示し、最後の接続 は、デバイス用に構成できる設定のコレクションです。各接続には、それを識別する名前またはIDがあります。

すべての接続のリストを表示するには、次を使用できます:

$ nmcli con show

nmcliを使用する ユーティリティを使用すると、ネットワーク接続を追加し、IPv4またはIPv6アドレスを割り当ててネットワーク接続を作成できます。ただし、ご存知のように、通常はnmcliで行う手動タスクを自動化する必要があります。 。 Ansibleプレイブックを使用してネットワークノードを管理したい。

Ansibleには、ノードの管理に役立つ3つの重要なモジュールがあります。サービス、デーモン、およびシステム設定です。これらのモジュールを使用して、ネットワークを管理することもできます。前回の記事では、Ansibleのシステムロールについて説明しました。 system-rolesには、rhel-system-roles.networkがあります。 役割。これは、管理対象ノードでネットワーク設定を構成および管理するための最も簡単な方法です。

このネットワークシステムを使用することから始めます 管理対象ノードでネットワーク設定を構成する役割。

ここにserver1.example.comがあります 管理対象マシン。インベントリファイルに管理対象ノードのエントリをすでに作成しました。

:新しい接続が追加されるため、管理対象ノードに2つのイーサネット接続があることを確認してください。その2番目のネットワークインターフェースが利用可能である必要があります。

操作を行う前に、管理対象ノードでNetworkManagerサービスが開始され有効になっていることを確認してください。プレイブックを使用してこれを行います。このタスクでは、service.ymlのサービスモジュールを使用します ファイル。

---
- name: playbook for starting and enabling the NetworkManager
  hosts: server1.example.com
  tasks:
  -    Name: start the service
       service:
         name: NetworkManager
         state: started
         enabled: true

このプレイブックを実行する:

$ ansible-playbook service.yml

プレイブックがエラーなしで正常に実行されると、サービスが開始され、管理対象ノードマシンで有効になります。

セカンダリインターフェースの名前はeno1 そのため、このインターフェースのMACアドレスを見つけることができます。このMACアドレスを使用しているため、プレイブックはセカンダリインターフェイスを検出します。 eno1のMACアドレスを表示します 使用:

$ ip a

server1.example.comのMACアドレス 52:54:00:fe:2f:b8 。プレイブックでこれを使用してください。

ここで、サービスタスクの後に、system-rolesをインストールします コントローラ上:

$ yum install rhel-system-roles

このコマンドは、すべてのシステムロールをロールのデフォルトディレクトリにインストールします。

次に、管理対象ノードに新しい接続を追加するためのプレイブックを作成します。

---
- name: playbook for configuring second interface
  hosts: server1.example.com
  vars:
     target_mac: “52:54:00:fe:2f:b8”
     network_connection:
          -  name: static-network
             type: ethernet
             mac: “{{ target_mac }}”
             state: up
             ip :
               dhcp: no
               address:
                    -  192.168.0.5/24
  roles:
   -    rhel-system-roles.network

これは完全なプレイブックです。各パラメータについて段階的に説明します:

target_mac -これは、2番目のイーサネットインターフェイスのMACアドレスです。これは、管理対象ノードの正しいインターフェースを見つけるのに役立ちます。

network_connection -この変数には、新しい接続に関する情報が含まれています:

  • name:新しい接続の名前
  • タイプ:新しい接続タイプ
  • mac:target_mac変数
  • 状態:upを使用して接続をアクティブ化します オプション
  • ip:DHCPオプションを無効にし、このパラメータを使用してIPアドレスを割り当てます

ネットワークシステムの役割を実行するために必要な変数を使用しました。次に、このプレイブックを実行します:

$ ansible-playbook networkconfiguration.yml

このハンドブックでは、静的IPアドレスを使用して静的ネットワーク接続を構成します。

設定を確認するには、server1.example.comにログインします 新しく追加された接続を確認します:

$ nmcli connection show

NAME		UUID		TYPE		DEVICE
eno0		adc52c70-…	ethernet	eno0   
static-network	1be30687-…	ethernet	eno1   
virbr0		0a9de672-…	bridge		virbr0

pingしてみてください 静的ネットワークのIPアドレス 接続し、成功した場合は、新しいネットワーク接続を正常に追加しました。

コントローラマシンからのアドホックコマンドを使用して、新しい接続が正常に追加されたかどうかを確認します。

$ ansible server1.example.com  -m shell -a 'nmcli con show'

このコマンドは、前の手順で示したものと同じ出力を表示します。

まとめ

この記事では、Ansibleシステムロールを使用してネットワーク接続を構成できることを示しています。この小さなプレイブックは、ホストのグループを作成するだけで、手動タスクを減らし、一度に多くのマシンのネットワーク接続を構成します。これらのシステムネットワークの役割は、プレイブックの実行中に多くのパラメータをチェックし、NetworkManagerが実行されていることを確認し、プレイブック自体の接続をテストします。これは、システムの役割を使用してシステムの構成を自動化する方法の優れた例です。


Linux
  1. Ansibleを使用してPrometheusでシステム監視を設定する方法

  2. RedhatLinuxで仮想化を構成する方法

  3. ネットワークサービスでStandardioを使用して単純なスクリプトを作成するようにSystemdを構成するにはどうすればよいですか?

  1. タイムシフトを使用してLinuxシステム設定をバックアップおよび復元する方法

  2. 方法:Ansibleを使い始める

  3. node.js を使用してシステム統計を取得する方法

  1. CentOSネットワーク設定を構成する方法

  2. Ansibleを使用してVimを設定する方法

  3. Debianシステムでのマウス設定の構成