1. 自己紹介
まずは自己紹介
ヨワヨワITエンジニアのHiRoといいます(笑)
ゆる〜く、IT技術に関することをブログにしていければと思っております。(更新は気まぐれ)
主にネットワーク技術に関することをansibleやpythonを踏まえながらブログ更新をしたいと思っております。
たま〜に脱線して違う技術ブログを更新するかも。。。
ブログ作成は会社を代表とした技術者ブログ作成が困難な為、それなら個人でやっちゃえ〜と思ったからです。 なので所属組織に関する物では有りません。
まぁ最初は勉強中のansibleの個人メモも兼ねてansibleでospfでのネットワーク構築の記事にしたいと思います。
今回の記事の流れは下記を予定してます。
2.使用デバイス紹介
3.トポロジー
上図にある通り、各ルーターのホスト名をR1~R3とします。 今回はansibleをメインにしてる為、設定するIPやエリアはテキトーです。
4.インベントリー
[r1] 192.168.100.21 [r2] 192.168.100.22 [r3] 192.168.100.23 [r1:vars] ansible_connection=network_cli ansible_network_os=ios ansible_user=cisco ansible_ssh_pass=cisco ansible_become=yes ansible_become_method=enable ansible_become_pass=cisco ansible_authorize=yes [r2:vars] ansible_connection=network_cli ansible_network_os=ios ansible_user=cisco ansible_ssh_pass=cisco ansible_become=yes ansible_become_method=enable ansible_become_pass=cisco ansible_authorize=yes [r3:vars] ansible_connection=network_cli ansible_network_os=ios ansible_user=cisco ansible_ssh_pass=cisco ansible_become=yes ansible_become_method=enable ansible_become_pass=cisco ansible_authorize=yes
今回はインベントリーのファイル名をinventとしました。
5.プレイブック
--- - hosts: r1 gather_facts: no tasks: - name: interface-setup ios_config: parents: - interface FastEthernet8 lines: - ip address 192.168.1.1 255.255.255.0 - name: ospf-setup ios_config: parents: - router ospf 1 lines: - network 192.168.1.1 0.0.0.0 area 0 - hosts: r2 gather_facts: no tasks: - name: interface-setup ios_config: parents: - interface FastEthernet8 lines: - ip address 192.168.1.2 255.255.255.0 - name: interface-setup ios_config: parents: - interface GigabitEthernet0 lines: - ip address 192.168.2.1 255.255.255.0 - name: ospf-setup ios_config: parents: - router ospf 1 lines: - network 192.168.1.2 0.0.0.0 area 0 - network 192.168.2.1 0.0.0.0 area 0 - hosts: r3 gather_facts: no tasks: - name: interface-setup ios_config: parents: - interface GigabitEthernet0 lines: - ip address 192.168.2.2 255.255.255.0 - name: ospf-setup ios_config: parents: - router ospf 1 lines: - network 192.168.2.2 0.0.0.0 area 0
今回作成したプレイブックのファイル名はmain.ymlとしました。
使用したansibleのモジュールはios_configモジュールです。 ios_configはCisco(ios)の設定ができます。
今回はios_configモジュールのlinesパラメーターとparentsパラメーターを使用することで簡単なospfの設定を行いました。 parentsパラメーターでは主に階層を移動する設定などを行い、linesパラメーターでは1から複数のコマンドを指定して設定を行うことができます。
6.実行
ansible-playbook -i invent main.yml
7.結果
ansible-playbookの実行結果
neighbor確認
ping確認
8.最後に
今回はansibleのios_configモジュールを使ってciscoルータでospfを喋らせてネットワーク構築を行ってみました。 こうしたらいいんじゃない?などご意見があればコメントいただけると幸いです。 今後もansibleに関して投稿は行いつつ、batfishやpyatsについても投稿を行っていく予定です。
9.参考ページ