puppet本にはcisco nexusを制御する章があるよ
TRANSCRIPT
Puppet本にはCisco NEXUSを制御する章があるよ
2017/12/13Hidetoshi Ochiai
ネットワークプログラマビリティ勉強会 #14ショート枠 発表資料
自己紹介 サーバサイドの人。ネットワークはサーバの周辺知識とし
て知っているだけ。 某SI会社勤務 2009年、Hadoop数百台の構築維持でPuppetを経験 その後、複数プロジェクトでPuppetで自動化を実施 現在、社内へのインフラ自動化の導入推進役をしている
社内は未だに人力のパラメタシート/手順書/試験項目書で成り立ってます。
夏にPuppetの書籍を出版しました! (次のページ)
Puppet[設定&管理]活用ガイド2017年8月24日発売 技術評論社執筆メンバは、全員同じ某SI会社勤務
ネットワークの章は、以下の皆様に多大 なるご助力をいただき、完成しました!
感謝! ServiceNow Japan株式会社河野真祐様
シスコシステムズ合同会社加藤久慶様
シスコシステムズ合同会社吉原大補様
目次を簡単に紹介
[第一部] 基本編1. Puppetはじめよう2. マニフェストの書き方3. クラス・リソースの定義4. モジュールの活用5. Puppet構成とインストール6. Hieraによるコードとデータの分離7. 高度な機能の活用
[第二部] 応用編8. 自動化のメリット9. 自動化に適したアーキテクチャ10. 自動化に適したインフラ体制11. マニフェスト設計のベストプラクティス12. 自動化に向かない構成の乗りこなし方13. 商用ソフトウェアのモジュール化14. インフラのテスト手法15. Puppet自体の運用設計16. パラメータシートからマニフェストの自動
生成17. ネットワーク機器とストレージ機
器の管理
Puppetの最新の文法を網羅的に解説
実際のエンタープライズシステムでの自動化の考え方を解説ツールに寄らない内容
17.1 Cisco製ネットワーク機器の管理17.2 EMC社製ストレージの管理17.3 NetApp社製ストレージの管理
Puppet, Chef, Ansibleを通じて、ネットワーク・ストレージの自動化まで解説した書籍は他にないのでは?(たぶん)
この本ならでは
この本ならでは
PuppetのCiscoモジュールpuppetlabs/ciscopuppetモジュール (Puppet社公式モジュール)Nexusシリーズの管理がPuppetで行える
ciscopuppetモジュールの機能 [1/2]タイプ リソース 簡易説明
AAA Types cisco_aaa_authorization_login_cfg_svc cisco_aaa_authorization_login_exec_svc cisco_aaa_group_tacacs cisco_aaa_authentication_login
認証、認可、アカウンティングのためのリソース
ACL Types cisco_acl, cisco_ace アクセス制御のためのリソース
BGP Types cisco_bgp, cisco_bgp_af cisco_bgp_neighbor, cisco_bgp_neighbor_af
L3ルーティングプロトコル BGP制御のためのリソース
Brige Domain Types
cisco_bridge_domain cisco_bridge_domain_vni L2ブロードキャストドメインを定義するためのリソース
Fabricpath Types cisco_fabricpath_global cisco_fabricpath_topology
L2でSTPの代わりに使用する技術FabricPath設定のためのリソース
Interface Types cisco_interface インターフェイス設定のためのリソース
ITD Types cisco_itd_device_group cisco_itd_device_group_node cisco_itd_service
L3, 4の負荷分散、ロードバランシング設定のためのリソース
Multicast Types cisco_pim, cisco_pim_rp_address cisco_pim_grouplist
マルチキャスト設定のためのリソース
OSPF Types cisco_ospf, cisco_ospf_vrf L3ルーティングプロトコルOSPF制御のためのリソース
サーバサイドの人から見ると、はっきり言って良くわかりません(涙)
なんとなくキーワードを聞いたことがあるレベルのものばかり……
たぶん、役に立つ、はず、です、きっと
ciscopuppetモジュールの機能 [1/2]タイプ リソース 簡易説明
AAA Types cisco_aaa_authorization_login_cfg_svc cisco_aaa_authorization_login_exec_svc cisco_aaa_group_tacacs cisco_aaa_authentication_login
認証、認可、アカウンティングのためのリソース
ACL Types cisco_acl, cisco_ace アクセス制御のためのリソース
BGP Types cisco_bgp, cisco_bgp_af cisco_bgp_neighbor, cisco_bgp_neighbor_af
L3ルーティングプロトコル BGP制御のためのリソース
Brige Domain Types
cisco_bridge_domain cisco_bridge_domain_vni L2ブロードキャストドメインを定義するためのリソース
Fabricpath Types cisco_fabricpath_global cisco_fabricpath_topology
L2でSTPの代わりに使用する技術FabricPath設定のためのリソース
Interface Types cisco_interface インターフェイス設定のためのリソース
ITD Types cisco_itd_device_group cisco_itd_device_group_node cisco_itd_service
L3, 4の負荷分散、ロードバランシング設定のためのリソース
Multicast Types cisco_pim, cisco_pim_rp_address cisco_pim_grouplist
マルチキャスト設定のためのリソース
OSPF Types cisco_ospf, cisco_ospf_vrf L3ルーティングプロトコルOSPF制御のためのリソース
ciscopuppetモジュールの機能 [2/2]タイプ リソース 簡易説明
Portchannel Types
cisco_portchannel_global, cisco_interface_ospf cisco_interface_channel_group cisco_interface_portchannel
複数物理ポートを1つ論理ポートとしてまとめるためのリソース
STP Types cisco_stp_global L2プロトコルSTPのためのリソース
SNMP Types cisco_snmp_community, cisco_snmp_groupcisco_snmp_server, cisco_snmp_user
SNMP設定のためのリソース
TACACS Types cisco_tacacs_server_host cisco_tacacs_server
認証サーバ設定のためのリソース
VLAN Types cisco_vtp, cisco_vlan VLAN設定のためのリソース
VPC Types cisco_vpc_domain 筐体をまたがる複数物理ポートを1つの論理ポートしてまとめるためのリソース
VRF Types cisco_vrf_af, cisco_vrf 一台の物理ルータの中に複数の仮想ルータを作るためのリソース
VNI Types cisco_interface_service_vni cisco_encapsulation
VXLANにおいて、各論理ネットワークの識別を行うためのIDを設定するためのリソース
VXLAN Types cisco_vxlan_vtep, cisco_vxlan_vtep_vni cisco_evpn_vni, cisco_overlay_global
VXLAN設定のためのリソース
Miscellaneous Types
cisco_vdc, cisco_command_config その他
コードの例: VLAN設定cisco_vlan { '2':
ensure => present,
vlan_name => 'vlan2',
shutdown => false,
}
cisco_interface { 'Ethernet1/3':
description => 'configured by puppet',
shutdown => false,
access_vlan => 2,
switchport_mode => access,
}
VLAN 2の設定
ポート Ethernet1/3にVLAN 2を割り当てる
一番単純な例を1つだけ示します。詳細はciscopuppetモジュールのドキュメントを見てください。
システム構成図● 書籍では、PC上のVMでNX-OSv 9000を動作させる方法を紹介しています。– Nexusが無料で試せます!– Puppetの検証目的であれば、問題なく使えます
Windows
VM VM NX-OSv 9000 Linux
Puppetマスタ
Puppetエージェント
マニフェストNX-OSのguestshell上にインストール
VirtualBox
で、結局どうなの?分類 質問 回答
機能 モジュールの作りはどう?
単にコンフィグを流し込むのではなく、ネットワーク機能をきちんと抽象化して、Puppetらしく作り込んでいる印象です
足りない機能があるのですが
Issueでリクエスト出すか、自分で作ってPull Request出しましょう!
ええっと、足りない機能がすぐに使えないと困るのですが……
cisco_command_config使うと、コンフィグが直接設定できるので、とりあえず何でも設定できます。冪等性もあります。show running-configの出力と比較して変化したところだけ設定されます。
Ansibleのネットワーク機能と比べてどう?
Ansble2.3までの機能は、上記cisco_command_configとほぼ同じで、コンフィグ流し込みタイプです。Ansible 2.4からは、機能を抽象化して本格的なモジュールに向かいつつあるようです。
利用例
実案件で使ったことあるの?
私はまだ実戦投入できていないです。虎視眈々とタイミングを狙っているのですが。海外では使われているようですが、詳しくはよくわかりません。Nexusを導入している案件では、既に運用ががっちり決まっていて、後付けでPuppet入れるのはかなりつらいので、あきらめました。
どのような案件なら使えそうなの?
仮想化統合基盤などのように、テナント払い出し毎に設定変更が入るような案件なら、Puppet等のツールが有益と思われます。OpenFlow導入は躊躇するが、今までと同じタイプの機器を使いつつ、コンフィグをPuppetで制御はアリだと思います。
まとめ● Puppet書籍を出しました。第2部は、他の本に書いていない内容が満載– エンタープライズシステムでの自動化の考え方– ネットワーク機器、ストレージ機器の制御
● 機器を持っていなくても、NX-OSv 9000を使うと簡単に試せます
● 皆さん、実際のプロジェクトでciscopuppetモジュールを使ってみましょう!