SlideShare a Scribd company logo
1 of 20
Download to read offline
株式会社 エーピーコミュニケーションズ

横地 晃

Ansible とネットワーク自動化の概要

2021/07/29 

セイコーソリューションズ x エーピーコミュニケーションズ 合同ウェビナー

SmartCS と Ansible の連携による自動化の可能性を体験!



© AP Communications Co., Ltd.
自己紹介

名前 横地 晃
会社 株式会社エーピーコミュニケーションズ

業務 ネットワーク自動化のご支援

コミュニティ Ansible ユーザー会、JANOG

@akira6592
https://tekunabe.hatenablog.jp https://www.slideshare.net/akira6592/
ブログ(てくなべ) 過去発表資料
Ansible の概要

© AP Communications Co., Ltd.
自動化ツール Ansible の特徴

シンプル
• プログラミング不要
• 構成定義ファイル(Playbook)を利用

パワフル
• 多数のサーバー、クラウド、ネットワーク向けの

モジュールを利用可能

• カスタムモジュールも自作可能
エージェントレス • 操作対象機器側に専用ソフトはインストール不要
•構成管理ツールとも呼ばれ、Chef や puppet などと比較されることが多い 

•本資料は Ansible 2.10 を前提
© AP Communications Co., Ltd.
50以上のネットワークプラットフォームに対応

Collection Index https://docs.ansible.com/ansible/2.10/collections/index.html 

● Cicso IOS、IOS-XR、NX-OS、ACI
● Arista EOS
● Juniper Junos

● Fortigate FortiOS

● F5 BIG-IP
● Paloalto PAN-OS
など



国内ベンダーも対応が進んでいる



• seiko.smartcs collection

• yamaha_network.rtx collection

© AP Communications Co., Ltd.
Ansible でネットワーク機器にできること

● 接続方式

• SSH、NETCONF、HTTP/HTTPS(API)などで接続



● できることの例
• 参照(show)コマンド実行による情報取得
• 設定コマンド実行による設定追加・変更・削除


SSH、NETCONF、HTTP(S)
情報取得、設定など

© AP Communications Co., Ltd.
Ansible を利用するメリット1

ログインやモード変更の処理を簡略化できる

• 認証情報を定義しておくだけで暗黙的にログイン、ログアウト
• 設定系モジュールは暗黙的にコンフィギュレーションモードへ移行

login:
password:
conf t
© AP Communications Co., Ltd.
Ansible を利用するメリット2

プロンプトのハンドリンクが簡略化できる
• エラーや正常プロンプトがモジュールに組み込み済み

terminal_stdout_re = [
re.compile(br"[rn]?[w+-.:/[]]+(?:([^)]+)){0,3}(?:[>#]) ?$")
]
terminal_stderr_re = [
re.compile(br"% ?Error"),
# re.compile(br"^% w+", re.M),
re.compile(br"% ?Bad secret"),
re.compile(br"[rn%] Bad passwords"),
re.compile(br"invalid input", re.I),
re.compile(br"(?:incomplete|ambiguous) command", re.I),
re.compile(br"connection timed out", re.I),
re.compile(br"[^rn]+ not found"),
re.compile(br"'[^']' +returned error code: ?d+"),
re.compile(br"Bad mask", re.I),
re.compile(br"% ?(S+) ?overlaps with ?(S+)", re.I),
re.compile(br"[%S] ?Error: ?[s]+", re.I),
re.compile(br"[%S] ?Informational: ?[s]+", re.I),
re.compile(br"Command authorization failed"),
re.compile(br"Command Rejected: ?[s]+", re.I),
]
https://github.com/ansible-collections/cisco.ios/blob/2.2.0/plugins/terminal/ios.py#L34
© AP Communications Co., Ltd.
Ansible を利用するメリット3

Ansible の他の機能と連携しやすい
• コマンド出力結果を copy モジュールに渡して、ファイルに保存
• テンプレート機能を利用して、コンフィグを生成して投入
• 監視サーバーに登録されているホスト情報を接続に利用

例えば
サンプル1:
コンフィグバックアップ
© AP Communications Co., Ltd.
サンプル1: コンフィグバックアップ(準備)

- hosts: ios
gather_facts: no
tasks:
- name: show command test
cisco.ios.ios_command:
commands:
- show running-config
register: result
- name: save config to file
copy:
content: "{{ result.stdout[0] }}"
dest: "show_config_{{ inventory_hostname }}.txt"
実行したい show コマンド

(変更すれば他のshowコマンドでも対応可)
保存先ファイル名
※このほか、対象ホストの接続情報や、認証情報を定義するファイルを用意する
対象ホストグループ
© AP Communications Co., Ltd.
$ ansible-playbook -i inventory show01.yml
PLAY [fw] ****************************************************************************************
TASK [show command test] *************************************************************************
ok: [172.16.0.1]
TASK [save config to file] ***********************************************************************
changed: [172.16.0.1]
PLAY RECAP ***************************************************************************************
172.16.0.1 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
サンプル1: コンフィグバックアップ(実行)

ansible-playbook コマンドを実行
コンフィグがファイルとして新たに
保存された旨のログ
● Ansible 側
Current configuration : 4332 bytes
!
! Last configuration change at 13:18:40 UTC Mon May 24
2021 by admin
!
version 15.9
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname ios01
!
...(略)...
サンプル2:
設定変更
© AP Communications Co., Ltd.
サンプル2: 設定変更(Playbook)

- hosts: ios
gather_facts: no
tasks:
- name: config test
cisco.ios.ios_config:
lines:
- ntp server 10.0.0.123
実行したい設定コマンド

(変更すれば他の設定コマンドでも対応可)
※このほか、対象ホストの接続情報や、認証情報を定義するファイルを用意する
対象ホストグループ
© AP Communications Co., Ltd.
$ ansible-playbook -i inventory set01.yml
PLAY [ios] ***************************************************************************************
TASK [config test] ******************************************************************************
changed: [172.16.0.1]
PLAY RECAP **************************************************************************************
172.16.0.1 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
サンプル2: 設定変更(実行)

ansible-playbook コマンドを実行
設定変更された旨のログ
ios01# show running-config | inc ntp
ntp server 10.0.0.123
設定変更された
● ネットワーク機器側
● Ansible 側
ところで、
こんな時はどうする?
© AP Communications Co., Ltd.
IPネットワーク
IPネットワーク
こんな時には

● IP到達性がない機器に Ansible を使うには?

•Ansible にも対応したコンソールサーバー「SmartCS」で

•詳細はこの後のパートで





コンソール接続(命綱)

まとめ

© AP Communications Co., Ltd.
まとめ

● はじめやすい自動化ツール

• シンプル、パワフル、エージェントレス



● 多数のネットワークプラットフォームに対応

• 参照や設定などができる 



● マクロにはないメリットも
• Ansible の他機能との連携
• ログイン/ログアウトの簡略化や、組み込みのエラー検出、など



● IP到達性がない機器には SmartCS で操作可能



© AP Communications Co., Ltd.
参考情報

● 公式ドキュメント

• トップ https://docs.ansible.com/

• Getting Started https://docs.ansible.com/ansible/latest/user_guide/intro_getting_started.html





● ブラウザだけで独習できる日本語コース

• Ansible 101 by irixjp | Katacoda https://www.katacoda.com/irixjp/scenarios/ansible-101



● 書籍
• Ansible実践ガイド 第3版

https://book.impress.co.jp/books/1118101094

More Related Content

What's hot

ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
Taiji Tsuchiya
 

What's hot (20)

Ansibleではじめるサーバー・ネットワークの自動化(2018/08/22)
Ansibleではじめるサーバー・ネットワークの自動化(2018/08/22)Ansibleではじめるサーバー・ネットワークの自動化(2018/08/22)
Ansibleではじめるサーバー・ネットワークの自動化(2018/08/22)
 
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
 
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催) ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
 
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)
 
ネットワーク構築訓練 入門
ネットワーク構築訓練 入門ネットワーク構築訓練 入門
ネットワーク構築訓練 入門
 
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
 
自宅k8s/vSphere入門
自宅k8s/vSphere入門自宅k8s/vSphere入門
自宅k8s/vSphere入門
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
 
30分でわかる! コンピュータネットワーク
30分でわかる! コンピュータネットワーク30分でわかる! コンピュータネットワーク
30分でわかる! コンピュータネットワーク
 
Ansible勉強会資料
Ansible勉強会資料Ansible勉強会資料
Ansible勉強会資料
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
 
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
 
ISPネットワーク運用で覗いてるもの
ISPネットワーク運用で覗いてるものISPネットワーク運用で覗いてるもの
ISPネットワーク運用で覗いてるもの
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース 【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
 
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 

Similar to Ansible とネットワーク自動化の概要(SmartCS と Ansible の連携による自動化の可能性を体験!)

Similar to Ansible とネットワーク自動化の概要(SmartCS と Ansible の連携による自動化の可能性を体験!) (20)

Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
 
Ansibleではじめるサーバー・ネットワークの自動化(2018/07/05)
Ansibleではじめるサーバー・ネットワークの自動化(2018/07/05)Ansibleではじめるサーバー・ネットワークの自動化(2018/07/05)
Ansibleではじめるサーバー・ネットワークの自動化(2018/07/05)
 
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
 
Hinemosによる初期構築~障害検知自動復旧システムの実現について
Hinemosによる初期構築~障害検知自動復旧システムの実現についてHinemosによる初期構築~障害検知自動復旧システムの実現について
Hinemosによる初期構築~障害検知自動復旧システムの実現について
 
ACI + Ansible
ACI + AnsibleACI + Ansible
ACI + Ansible
 
What is an Ansible?
What is an Ansible?What is an Ansible?
What is an Ansible?
 
red-hat-forum-2017-openshift-baremetal-deployment
red-hat-forum-2017-openshift-baremetal-deploymentred-hat-forum-2017-openshift-baremetal-deployment
red-hat-forum-2017-openshift-baremetal-deployment
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
Puppet入門
Puppet入門Puppet入門
Puppet入門
 
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
 
Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-
 
OSSを活用したIaCの実現
OSSを活用したIaCの実現OSSを活用したIaCの実現
OSSを活用したIaCの実現
 
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化
 
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
 
Azure Network 概要
Azure Network 概要Azure Network 概要
Azure Network 概要
 
OpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみたOpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみた
 
20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート
 
IOS/IOS-XE 運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデートIOS/IOS-XE 運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデート
 

More from akira6592

More from akira6592 (20)

新人研修資料 向き合うエンジニア
新人研修資料 向き合うエンジニア新人研修資料 向き合うエンジニア
新人研修資料 向き合うエンジニア
 
Ansible 実践ガイド第3版 ネットワーク担当としてのふりかえり #インフラエンジニアBooks
Ansible 実践ガイド第3版 ネットワーク担当としてのふりかえり #インフラエンジニアBooksAnsible 実践ガイド第3版 ネットワーク担当としてのふりかえり #インフラエンジニアBooks
Ansible 実践ガイド第3版 ネットワーク担当としてのふりかえり #インフラエンジニアBooks
 
Ansible でお世話になっている機能と拡張
Ansible でお世話になっている機能と拡張Ansible でお世話になっている機能と拡張
Ansible でお世話になっている機能と拡張
 
Ansible 2.10 と Collection
Ansible 2.10 と CollectionAnsible 2.10 と Collection
Ansible 2.10 と Collection
 
自動化の下ごしらえ
自動化の下ごしらえ自動化の下ごしらえ
自動化の下ごしらえ
 
向き合うエンジニア 2020年度版
向き合うエンジニア 2020年度版向き合うエンジニア 2020年度版
向き合うエンジニア 2020年度版
 
はじめてAnsibleのバグ修正に協力してみた
はじめてAnsibleのバグ修正に協力してみたはじめてAnsibleのバグ修正に協力してみた
はじめてAnsibleのバグ修正に協力してみた
 
CML-Personal (VIRL2)のインストールと基本機能
CML-Personal (VIRL2)のインストールと基本機能CML-Personal (VIRL2)のインストールと基本機能
CML-Personal (VIRL2)のインストールと基本機能
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
 
自動化ツール Ansible に触れてみよう(技術インターン)
 自動化ツール Ansible に触れてみよう(技術インターン) 自動化ツール Ansible に触れてみよう(技術インターン)
自動化ツール Ansible に触れてみよう(技術インターン)
 
技術ブログを書こう
技術ブログを書こう技術ブログを書こう
技術ブログを書こう
 
Ansible2.9 ネットワーク対応のアップデート #ansiblejp
Ansible2.9 ネットワーク対応のアップデート #ansiblejpAnsible2.9 ネットワーク対応のアップデート #ansiblejp
Ansible2.9 ネットワーク対応のアップデート #ansiblejp
 
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
 
show コマンド結果をパースする方法あれこれ #npstudy
show コマンド結果をパースする方法あれこれ #npstudyshow コマンド結果をパースする方法あれこれ #npstudy
show コマンド結果をパースする方法あれこれ #npstudy
 
はじめた自動化をどう広めるか 書籍「Fearless Change」からのヒント
はじめた自動化をどう広めるか 書籍「Fearless Change」からのヒントはじめた自動化をどう広めるか 書籍「Fearless Change」からのヒント
はじめた自動化をどう広めるか 書籍「Fearless Change」からのヒント
 
はじめどころを探る自動化アセスメント(JANOG44 ここからはじめよう、運用自動化)
はじめどころを探る自動化アセスメント(JANOG44 ここからはじめよう、運用自動化)はじめどころを探る自動化アセスメント(JANOG44 ここからはじめよう、運用自動化)
はじめどころを探る自動化アセスメント(JANOG44 ここからはじめよう、運用自動化)
 
向き合うエンジニア
向き合うエンジニア向き合うエンジニア
向き合うエンジニア
 
Ansibleではじめるサーバー・ネットワークの自動化(2019/02版)
Ansibleではじめるサーバー・ネットワークの自動化(2019/02版)Ansibleではじめるサーバー・ネットワークの自動化(2019/02版)
Ansibleではじめるサーバー・ネットワークの自動化(2019/02版)
 
「自動化の行き着く先は?」をうけて
「自動化の行き着く先は?」をうけて「自動化の行き着く先は?」をうけて
「自動化の行き着く先は?」をうけて
 
Ansibleでネットワーク機器の状態確認を自動化してみよう
Ansibleでネットワーク機器の状態確認を自動化してみようAnsibleでネットワーク機器の状態確認を自動化してみよう
Ansibleでネットワーク機器の状態確認を自動化してみよう
 

Ansible とネットワーク自動化の概要(SmartCS と Ansible の連携による自動化の可能性を体験!)

  • 1. 株式会社 エーピーコミュニケーションズ
 横地 晃
 Ansible とネットワーク自動化の概要
 2021/07/29 
 セイコーソリューションズ x エーピーコミュニケーションズ 合同ウェビナー
 SmartCS と Ansible の連携による自動化の可能性を体験!
 

  • 2. © AP Communications Co., Ltd. 自己紹介
 名前 横地 晃 会社 株式会社エーピーコミュニケーションズ
 業務 ネットワーク自動化のご支援
 コミュニティ Ansible ユーザー会、JANOG
 @akira6592 https://tekunabe.hatenablog.jp https://www.slideshare.net/akira6592/ ブログ(てくなべ) 過去発表資料
  • 4. © AP Communications Co., Ltd. 自動化ツール Ansible の特徴
 シンプル • プログラミング不要 • 構成定義ファイル(Playbook)を利用
 パワフル • 多数のサーバー、クラウド、ネットワーク向けの
 モジュールを利用可能
 • カスタムモジュールも自作可能 エージェントレス • 操作対象機器側に専用ソフトはインストール不要 •構成管理ツールとも呼ばれ、Chef や puppet などと比較されることが多い 
 •本資料は Ansible 2.10 を前提
  • 5. © AP Communications Co., Ltd. 50以上のネットワークプラットフォームに対応
 Collection Index https://docs.ansible.com/ansible/2.10/collections/index.html 
 ● Cicso IOS、IOS-XR、NX-OS、ACI ● Arista EOS ● Juniper Junos
 ● Fortigate FortiOS
 ● F5 BIG-IP ● Paloalto PAN-OS など
 
 国内ベンダーも対応が進んでいる
 
 • seiko.smartcs collection
 • yamaha_network.rtx collection

  • 6. © AP Communications Co., Ltd. Ansible でネットワーク機器にできること
 ● 接続方式
 • SSH、NETCONF、HTTP/HTTPS(API)などで接続
 
 ● できることの例 • 参照(show)コマンド実行による情報取得 • 設定コマンド実行による設定追加・変更・削除 
 SSH、NETCONF、HTTP(S) 情報取得、設定など

  • 7. © AP Communications Co., Ltd. Ansible を利用するメリット1
 ログインやモード変更の処理を簡略化できる
 • 認証情報を定義しておくだけで暗黙的にログイン、ログアウト • 設定系モジュールは暗黙的にコンフィギュレーションモードへ移行
 login: password: conf t
  • 8. © AP Communications Co., Ltd. Ansible を利用するメリット2
 プロンプトのハンドリンクが簡略化できる • エラーや正常プロンプトがモジュールに組み込み済み
 terminal_stdout_re = [ re.compile(br"[rn]?[w+-.:/[]]+(?:([^)]+)){0,3}(?:[>#]) ?$") ] terminal_stderr_re = [ re.compile(br"% ?Error"), # re.compile(br"^% w+", re.M), re.compile(br"% ?Bad secret"), re.compile(br"[rn%] Bad passwords"), re.compile(br"invalid input", re.I), re.compile(br"(?:incomplete|ambiguous) command", re.I), re.compile(br"connection timed out", re.I), re.compile(br"[^rn]+ not found"), re.compile(br"'[^']' +returned error code: ?d+"), re.compile(br"Bad mask", re.I), re.compile(br"% ?(S+) ?overlaps with ?(S+)", re.I), re.compile(br"[%S] ?Error: ?[s]+", re.I), re.compile(br"[%S] ?Informational: ?[s]+", re.I), re.compile(br"Command authorization failed"), re.compile(br"Command Rejected: ?[s]+", re.I), ] https://github.com/ansible-collections/cisco.ios/blob/2.2.0/plugins/terminal/ios.py#L34
  • 9. © AP Communications Co., Ltd. Ansible を利用するメリット3
 Ansible の他の機能と連携しやすい • コマンド出力結果を copy モジュールに渡して、ファイルに保存 • テンプレート機能を利用して、コンフィグを生成して投入 • 監視サーバーに登録されているホスト情報を接続に利用
 例えば
  • 11. © AP Communications Co., Ltd. サンプル1: コンフィグバックアップ(準備)
 - hosts: ios gather_facts: no tasks: - name: show command test cisco.ios.ios_command: commands: - show running-config register: result - name: save config to file copy: content: "{{ result.stdout[0] }}" dest: "show_config_{{ inventory_hostname }}.txt" 実行したい show コマンド
 (変更すれば他のshowコマンドでも対応可) 保存先ファイル名 ※このほか、対象ホストの接続情報や、認証情報を定義するファイルを用意する 対象ホストグループ
  • 12. © AP Communications Co., Ltd. $ ansible-playbook -i inventory show01.yml PLAY [fw] **************************************************************************************** TASK [show command test] ************************************************************************* ok: [172.16.0.1] TASK [save config to file] *********************************************************************** changed: [172.16.0.1] PLAY RECAP *************************************************************************************** 172.16.0.1 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 サンプル1: コンフィグバックアップ(実行)
 ansible-playbook コマンドを実行 コンフィグがファイルとして新たに 保存された旨のログ ● Ansible 側 Current configuration : 4332 bytes ! ! Last configuration change at 13:18:40 UTC Mon May 24 2021 by admin ! version 15.9 service timestamps debug datetime msec service timestamps log datetime msec service password-encryption ! hostname ios01 ! ...(略)...
  • 14. © AP Communications Co., Ltd. サンプル2: 設定変更(Playbook)
 - hosts: ios gather_facts: no tasks: - name: config test cisco.ios.ios_config: lines: - ntp server 10.0.0.123 実行したい設定コマンド
 (変更すれば他の設定コマンドでも対応可) ※このほか、対象ホストの接続情報や、認証情報を定義するファイルを用意する 対象ホストグループ
  • 15. © AP Communications Co., Ltd. $ ansible-playbook -i inventory set01.yml PLAY [ios] *************************************************************************************** TASK [config test] ****************************************************************************** changed: [172.16.0.1] PLAY RECAP ************************************************************************************** 172.16.0.1 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 サンプル2: 設定変更(実行)
 ansible-playbook コマンドを実行 設定変更された旨のログ ios01# show running-config | inc ntp ntp server 10.0.0.123 設定変更された ● ネットワーク機器側 ● Ansible 側
  • 17. © AP Communications Co., Ltd. IPネットワーク IPネットワーク こんな時には
 ● IP到達性がない機器に Ansible を使うには?
 •Ansible にも対応したコンソールサーバー「SmartCS」で
 •詳細はこの後のパートで
 
 
 コンソール接続(命綱)

  • 19. © AP Communications Co., Ltd. まとめ
 ● はじめやすい自動化ツール
 • シンプル、パワフル、エージェントレス
 
 ● 多数のネットワークプラットフォームに対応
 • 参照や設定などができる 
 
 ● マクロにはないメリットも • Ansible の他機能との連携 • ログイン/ログアウトの簡略化や、組み込みのエラー検出、など
 
 ● IP到達性がない機器には SmartCS で操作可能
 

  • 20. © AP Communications Co., Ltd. 参考情報
 ● 公式ドキュメント
 • トップ https://docs.ansible.com/
 • Getting Started https://docs.ansible.com/ansible/latest/user_guide/intro_getting_started.html
 
 
 ● ブラウザだけで独習できる日本語コース
 • Ansible 101 by irixjp | Katacoda https://www.katacoda.com/irixjp/scenarios/ansible-101
 
 ● 書籍 • Ansible実践ガイド 第3版
 https://book.impress.co.jp/books/1118101094