情報ガイドステーションメニュー
| Ansibleを用いてDell PowerSwitchの自動化を試してみよう |
読者の皆さんは、日常的にTerraformやAnsible などを用いてサーバや仮想マシン環境の構成や管理の自動化に取り組まれていらっしゃるのではないでしょうか。このブログでは、そんなエンジニアの方々が新しくネットワークの自動化へ取り組むきっかけとなればと幸いです。
ネットワーク機器の自動化プラットフォームとしてはAnsible一択という状況です。AnsibleはAgent要らずの実装のためネットワーク機器との相性が良く、各スイッチベンダーからAnsibleのモジュールやコレクションが既に提供され、自動化するための基盤が整備されています。 サーバ管理者が新しくネットワークの自動化に取り組む場合、このモジュールの使用方法や設定順序等について理解していかなければならないのですが、この点が結構なハードルになっているのではないでしょうか。筆者も経験しましたが、Ansibleのドキュメントは比較的シンプルな表現となっているため、初めて利用するモジュールの使い方に苦戦してしまうことも珍しくないでしょう。 本ブログは下記の様な内容でAnsibleによるDellスイッチの自動化を実際に体験する流れになっています。 目次:● Fabric Design Center を使って、スイッチの設計とAnsible Playbookを入手しよう● GNS3を用いて、Ansible Playbookを用いてDellスイッチの自動化を試してみよう ● Fabric Design Center を使って、スイッチの設計とAnsible Playbookを入手しようDell Technologiesではネットワーク機器の設計・導入の敷居を下げるために、Fabric Design Center(以下FDC略)という無償のWebツールを提供しています。FDCで出力されるアウトプットには、AnsibleのPlaybookを含ませることができるので、新しくネットワークの自動化を学習されようとするサーバ管理者はFDCから出力されたPlaybookが参考になります。FDCについての詳細は下記の過去記事を参照していただければと思います。 リンク: サーバ、ストレージ、HCI向けネットワーク設計・構築支援ツール Dell EMC Networking 「Fabric Design Center(FDC)」 のご紹介 https://japancatalog.dell.com/c/isg20181002/ ネットワーク設計・構築支援ツール 「Fabric Design Center(FDC)」 の実践編 https://japancatalog.dell.com/c/isg_blog_fabricdesigncenter_practice/ 本ブログでは、FDCを活用して、Leaf(Top of Rackスイッチ)4台、Spine(コア)スイッチ2台の構成を、入手していきます。 FDCでのネットワーク設計https://fdc.dell.com 上部タブ「Build-Your-Own Network Design」を選択します 以下のようにパラメータを設定します。 Network Fabric Name:適当なプロジェクト名 Default Leaf/ToR Switch:S5212F-ON(GNS) Default Spine Switch:S5212F-ON(GNS) Default Bandwidth to Rack:200 Network Overlay:None 設定後「Apply」ボタンを押します。 すると、下段の Workload Racks が更新されます。 ここでは追加でWorkload用のVLANの設定などが行えるのです、今回はそのまま「Next」で設計を確定します。 Logical View:ラッキングイメージ Network View:論理トポロジー Network Configuration:管理IPなど基本的な管理機能関連の設定を追加します 管理インタフェースに設定するIPアドレスを指定します。 Management Subnet:管理インタフェースを接続するネットワークのサブネットアドレス Starting IP Address:管理インタフェースに使用するIPアドレスの最初のアドレス Default Gateway:デフォルトゲートウェイ CLI Credentials:リモートアクセス用のユーザ名/パスワードを設定します。 今回はデフォルトユーザの admin と、OS10のパスワード要件を満たすパスワードを設定します。 Configuration Download Configuration Typeにて Ansible Playbook (Collection Based) を選択して「Download All」ボタンを押します。 今回の設定では外部接続ネットワークを定義していないため、アラートが表示されますが、そのまま「OK」をクリックすると、Playbookがダウンロードされます。 ブログ後半では、出力したPlaybookを用いて実際に仮想環境上のスイッチを自動構成していきたいと思います。 ● GNS3を用いて、Ansible Playbookを用いてDellスイッチの自動化を試してみようFDCで入手したPlaybookを用いて、Dellスイッチの自動構成を試してみます。とはいえ、気軽に6台ものスイッチを物理的に揃えて試すのは現実的ではないため、ネットワークOSのエミュレーション環境として定番の GNS3 を用いて試します。 リンク:https://www.gns3.com/ テスト環境トポロジーテスト用の環境として、今回は下記の様な環境を用意します。GNS3では、 VMware Workstation, VMware ESXi, Virtual Boxといった環境での利用が可能なので、環境にあわせて検討いただければと思います。 Ansibleホスト環境の構成Ansibleホスト環境として、 Ubuntu Server 20.04 を用いました。Ansible環境の導入は以下コマンドで実施しました。 sudo apt update sudo apt install software-properties-common sudo apt-add-repository –yes –update ppa:ansible/ansible sudo apt install ansible FDCで出力されるAnsible Playbookは、Version 2.10 以降での実行が想定されています。 Ansible.cfg ファイルの編集Playbook実行のため、Ansible.cfgファイルへ下記を追加しました。各種Timeout値を変更しているのは、GNS3が実機スイッチと比べて、応答が遅くなる傾向が強いため、Ansibleの処理がタイムアウトでエラーとなってしまわないようにするためです。タイムアウト値は環境によって変わってくるかと思われます。 ● Host_key_checking = False ● connect_timeout = 150 ● command_timeout = 150 参考リンク: 『Ansible for SmartFabric OS10 Technical Note』 https://cdn-prod.scdn6.secure.raxcdn.com/static/media/client/7phukh/22ff36e1-1fa1-4a5e-96eb-014409600976.pdf GNS3環境の構成まず、設定対象のスイッチを展開していきます。GNS用のDellスイッチイメージはDellパートナーであれば、Dellのサポートサイトより入手いただけます。Dellサポートサイトで入手できない場合は、担当営業へ相談いただければと思います。 また、GNS3のスイッチイメージはデフォルトのポート数が 10 になっているため、今回の設計で利用しているS5212F-ON に合わせて、13 へ変更しておきます。インタフェース数の変更はスイッチへの配線前に実施する必要があるので、このタイミングで実施しておきます。 GNS3の使用方法については詳しくは説明しませんが、スイッチの設定後は下記図の様なトポロジーを構成していきます。各OS10スイッチのMgmtポート(eth0)を仮想マシンの外部NICへブリッジし、AnsibleホストへIPリーチできる環境を構成しています。 OS10の事前設定各スイッチにログインして、adminユーザのパスワード設定、および管理インタフェースのIPアドレスを設定します。 Admin ユーザパスワードを変更します(FDCでの入力に合わせて変更します) (config) # username admin password <パスワード> role sysadmin priv-lvl 15 Mgmt 1/1/1 のIPアドレスを設定します(FDC入力に合わせて設定します) (config)#Interface mgmt 1/1/1 (config-if-ma-1/1/1)# no ip address dhcp (config-if-ma-1/1/1)# ip address <IPアドレス> 設定内容を保存します # write memory Ansible Playbook の実行Ansible ホストへFDCから出力されたPlaybookをコピーします。ファイルを展開すると以下の様な構造となります。 Ansible_deploy.sh が実行用のスクリプトファイルになっているため、このファイルへ実行権限を付与しておきます。 $ chmod +x ansible_deploy.sh GNS上の各スイッチに設定したIPアドレスへ疎通が取れていることを確認してから、スクリプトファイルを実行します。 $ ./ansible_deploy.sh 実行結果 各スイッチ間の結線を行います。 今回はFDCを用いて、Dell PowerSwitchの設計と、実際に動作可能なAnsible Playbookが出力されていることを確認することができました。是非読者のみなさんも、FDCから出力されるAnsbile Playbookをご活用いただき、ネットワーク自動化の学習の助けとしていただければ幸いです。 |
タグ: Ansible, Fabric Design Center, FDC, PowerSwitch, ネットワーク