お疲れ様です。たそ(@taso_int)です。
GWも終わってしまいましたtohoho...
引き続き資格取得に向けて勉強したいです。
取ってほしいと言われた資格は残り基本情報のみで、
それを取ったらAzure資格を少し取りたいです。
前回環境構築をしたので、今回は実際に何か設定したいと思います。
前回の内容について知りたい方はこちらへ
今回はこれの続きです。 ルータに新しいインターフェイスを追加したいと思います。
1.構成図
以前の構成図からR1にf1/0とLo0を設定します。
次からアドレス一覧も付けたいと思います。
2. 目標
この構成の完成を目指す。
Ansibleで設定して確認が出来ればOK
自動化を理解するためには手動設定も大切なので手動設定も行う。
3-1. 手順(手動)
f1/0の設定
ルータに入り、以下のように設定
R1#conf t
R1(config)#
R1(config)#int f0/1/0
R1(config-if)#ip add 192.168.2.254 255.255.255.0
R1(config-if)#no shut
Lo0の設定
ルータに入り、以下のように設定
R1#conf t
R1(config)#
R1(config)#int Lo0
R1(config-if)#ip add 192.168.255.1 255.255.255.255
ループバックインターフェイスにno shutは不要です。
設定確認
R1#show run
(抜粋)
interface Loopback0
ip address 192.168.255.1 255.255.255.255
interface FastEthernet0/1/0
ip address 192.168.2.254 255.255.255.0
duplex auto
speed auto
3-2. 手順(Ansible)
手動設定ができたので
次はAnsibleでこの設定をしたいと思います。
Ansibleではplaybookを実行することで自動的に設定を行うことが出来ます。
1.インターフェイスの有効化
まずはインターフェイスの有効化をします。
tasks: - name: Ethernet ena ios_interfaces: config: - name: FastEthernet0/0 enabled: False - name: FastEthernet0/1 enabled: True - name: FastEthernet0/1/0 enabled: True - name: Loopback0 enabled: True
インターフェイスの有効化はios_interfaceモジュールを使用します。
enabledでTrueを設定すると有効化(手動のno shutと同じ)
enabledでFalesを設定すると無効化(手動のshutと同じ)
ループバックインターフェイスについてですが手動設定の場合は
no shutが不要でしたが、Ansibleではここで設定をしないと有効化されませんでした。
2.アドレスの割り当て
インターフェイスの有効化が出来たのでIPアドレスを設定します。
- name: add ip ios_l3_interfaces: config: - name: FastEthernet0/1/0 ipv4: - address: 192.168.2.254/24 - name: Loopback0 ipv4: - address: 192.168.255.1/32
アドレスの割り当てはios_l3_interfacesモジュールを使用します。
ipv4などipv6などの設定が可能となっております。
3.設定を保存
このままだとルータの電源を切ってしまうと設定が反映されないので、
設定を反映するようにします。(手動のwrite memory)
- name: write memory ios_config: save_when: modified tags: - save
ios_configモジュールにsave_whenオプションがあり、
これを利用することで、設定が保存できます。
save_whenオプションの値は色々ありますがstartup-configと running-config に
差分がある場合に設定を保存してくれるmodifiedを値として設定しました。
4.実行
最終的にこんな感じのyamlになりました。
--- - hosts: Router1 gather_facts: False tasks: - name: Ethernet ena ios_interfaces: config: - name: FastEthernet0/0 enabled: False - name: FastEthernet0/1 enabled: True - name: FastEthernet0/1/0 enabled: True - name: Loopback0 enabled: True - name: add ip ios_l3_interfaces: config: - name: FastEthernet0/1/0 ipv4: - address: 192.168.2.254/24 - name: Loopback0 ipv4: - address: 192.168.255.1/32 - name: write memory ios_config: save_when: modified tags: - save
実行はansible-playbook -i inventory routercon.yml で実行できます。
実行様子
上手く実行されて設定が反映されているのでchangeになっています。
以前も使ったios_factsモジュールを使って確認したいと思います。
実行はansible -i inventory ios -m ios_facts
ちゃんと設定されてますね。
最後に
無事Ansibleでルータに設定を追加することが出来ました。
来週はインターフェイスの設定変更をしていきたいと思います。
ここまで読んでいただきありがとうございました。