たそ@ITインフラ初心者

taso@初心者エンジニア

新卒2年目 エンジニアが適当に語るブログてす

Ansibleでルータをさわる 環境構築編

こんばんは たそ(@taso_int)です。

入社してから1ヶ月経ちました。時間たつのが早い…

GWの予定は当然ありません。資格の勉強でもしようかと思います。

 

今日は久しぶりに技術的な記事を書きたいなと

私はAnsibleでサーバの自動構築(レベル低)はやったことあるのですが、

Ansibleでネットワーク機器を触ったことがないのでやってみたいなと思いました。

今日はそのための環境構築として書きたいと思います。

 

1.構成図

f:id:taso_int:20210502233511j:plain

 

本当にシンプルな構成で申し訳ないです。本当はスイッチ購入して、

ホストとAnsibleを分けたかったのですが、スイッチ持ってないですよね。

おすすめの中古スイッチがあれば教えてほしいです。

 

2.目標

まずはこの構成の完成を目指していきたいと思います。

Ansibleはインストール済みになってます。

ルータへのSSH接続とAnsibleのモジュールが使えればOKとします。

 

3.手順

3-1ルータへのSSH有効化

まずはルータへのSSHをできるようにコンソールケーブルを使用して、

設定を行いたいと思います。

 

①ユーザー認証の設定

R1(config)#username taso privilege 15 secret cisco

 

R1(config)#line vty 0 4

R1(config-line)#login local ←ユーザ名とパスワードを認証の際に使用するように

 

ドメイン名作成

R1(config)#hostname R1 (←設定している)

R1(config)#ip domain name taso.com

 

RSA鍵の作成

R1(config)#crypto key generate rsa ←この後に1024を入力

 

④セキュリティ的に

R1(config)#line vty 0 4

R1(config-line)#trunsport input ssh

 

※事前に特権EXECモードへ移行するためにパスワード設定はしておくこと

enable passwordコマンドかenable secretコマンド

 

参考URL 

Ciscoルータ - SSHの設定

 

3-2ルータのアドレス設定

R1(config)#int f0/1

R1(config-if)#ip add 192.168.1.2 255.255.255.0

R1(config-if)#no shut ←ポートの有効化

3-3PC側の設定 

ホストのアドレスを192.168.1.1に設定

SSHでログインできるかを確認する。

SSHにログインができなかった場合、

手順の振り返り、エラーの確認

今回はSSHの鍵が対応していなかったためエラーを起こしたらしい

/etc/ssh/ssh_configの設定を確認して無事SSH成功

3-4Ansibleの設定

ディレクトリ構成

Ansible
├── group_vars
│   └── ios.yml
└── inventory

 

inventoryファイルの作成。

ルータで設定したf0/1のipアドレスを記入する。

[ios

R1 ansible_hosts=192.168.1.2

 

group_vars/ios.ymlファイルの作成

inventoryファイルで[ios]のグループを定義したので、そのios内の変数等を

しまうためのファイルを作成

---

ansible_network_os: ios

ansible_connection: network_cli

anisble_user: taso

ansible_password: cisco

#特権

ansible_become_password: cisco

ansible_become: yes

基本設定はこれで終わりですかね。

ためしにpingモジュールを使って疎通確認してみます。

ansible -i inventory ios -m ping

Router1 | SUCCESS => {
"changed": false,
"ping": "pong"
}

 

またciscoのシステム情報やインターフェイス情報を入手すること

ができるios_factsモジュールを使ってみたいと思います。

一部抜粋

f:id:taso_int:20210503190151p:plain

ちゃんと取得できていますね。

 

今回はこれで終わりにします。

次週は何かの設定をAnsibleで入れてみたいと思います。 

あとコマンドとファイルの記述が分かりづらいので

次はコマンドプロンプト風に出来たらいいなと思います。

 

ここまで読んでいただきありがとうございました