【备忘录】在 Ansible 默默无闪组(第5回)网络篇 中使用的 Etherpad #ansiblejp

Ansible默默会(第5次)网络部分

你好。我是中村@fideleruuth,在红帽(Red Hat)负责Ansible的业务开发。

我们在2018年8月28日在红帽的3楼讲堂举行了一个研讨会。像往常一样,我想在备忘录中保留我们在研讨会上使用的Etherpad的备忘。

这次参加的人员总共有23人,包括远程参与的人员。当天因工作原因临时无法参加的人还是有一些,有些出乎意料,但也没办法呢。不能来参加的人,请下次再努力啦!

关于网络编辑部分,我们使用了名为Linklight的内容让大家体验环境(Linklight Workshop日语)。如果您有意愿通过这个环境来举办自习会,需要场地租借的话,请务必与我们联系。

我知道有点唠叨,但Ansible黑客空间为您提供了一个从Red Hat获取提供环境来使用Ansible的机会。此外,还有练习内容,您可以按照内容进行黑客作业,澄清自己的疑问,并在用户之间进行信息交流。在东京有Red Hat的研讨室,但在大阪等地没有研讨室,所以我们在用户会议中寻求可以提供场地的赞助企业。如果您能提供场地,请务必与我们联系!

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3231313132312f65636163333863382d366534382d396234642d643562622d3864643262663439643062312e706e67.png

交流中的问题和回答

请在此处填写问题。

Q. こんなかんじで質問すれば

A. こんなかんじで回答されます

最初、どこにどうやってログインすればいいですか?

[control]にあるansible_hostのIPアドレスにログインしてください。
IDとパスワードは[all:vars]にあるstudentXXとred123hatを使用してください。

この “control” はどうやって名前解決していますか?

$HOME/.ansible.cfg で inventory = /home/student28/networking-workshop/lab_inventory/hosts が定義されています。

vimを使うと気絶する病にかかっているんですがemacs勝手に入れていいですか?

インストールできれば大丈夫です。
vimは至高
法律に触れないことでしたら問題ありません。
入れました

cat ~/.ansible.cfgたたくとでるconnection = smartとはどんな接続方法?なんでしょうか

デフォルトの値です。ssh -o ControlPersistがエラーとなる場合はparamikoが使用され、エラーにならなければSSHが使用されます。
transport = smart ですか?であれば^^^のような動きになるはずです。ControlPersistが実装されていない古いOpenSSHのバージョンであればparamikoになるはずです。ちなみにsmartはconnection_pluginとしてsshが選択された場合のみ有効な設定のようです。

この環境と同じものを後で作ろうと思ったときはどうすればいいですか?

この環境もansibleで構築しています。作成するためのplaybookは下記のURLにあります。README.mdをご確認ください。
\url{https://github.com/network-automation/linklight/tree/master/provisioner}
(この質問たいへんありがたい! 当たり前の疑問でしたが 脳内でスルーしてました…)

皆さんには持ち帰っていただきたくて ^^

上記質問に関連して質問ですがAWSのインスタンスはどのタイプを使っていますか?それなりの額の課金が発生しますか?

$ curl \url{http://169.254.169.254/latest/meta-data/instance-type} で自身のメタ情報からインスタンスタイプが確認できるので、確認してみてください!

IOS-XEでcurl叩くのしんどそうなイメージ

ノードによってそれぞれ異なりますが、詳しくは下記を確認してください。
\url{https://github.com/network-automation/linklight/blob/master/provisioner/roles/manage\_ec2\_instances/defaults/main.yml}
IOSはt2.mediumでした

半角スペースが行によって(1~3?)違うと思うのですが、これはどういった意図なのでしょうか?

PlaybookなどのYAML形式のファイルは、インデントでデータ構造が定義されています。よりインデントが深
\url{https://docs.ansible.com/ansible/latest/reference\_appendices/YAMLSyntax.html}

コードが長くなるとインデント幅を間違えそうになるのですが、いい方法はないでしょうか?縦にハイライト入れるのがベストですかね。。。

Playbookは適切な粒度で分割するほうが、再利用性もあがり、デバッグも楽になりメリットが多いと思います。適切に切り出してroleで分割するというのはいかがでしょうか?長いPlaybookを書かないというのが一番の方法だと思います。include_やimport_などの構文も入ったので、分割はしやすくなっていると思います。

以下のコマンドでエラーになったのですが何か間違えてますか? ansible -i lab_inventory/hosts routers -m net_ping -a dest=172.16.82.42

「-c network_cli」のオプションをつけてみるとどうなります?

「-c network_cli」を付けて rtr1はOKでしたが、rtr2はエラーになりました。

おそらく、まだトンネルが貼れてないからだと思われます。
この環境はVPCとsubnetを駆使して初期状態ではansible_hostからrtr2やhostsへアクセスできないように作成されています。
あまり先まで演習見てないですが、1.4のルータの設定で追加するルーティング情報はhost1とansibleへの経路のみのようなので、演習進めてもansibleからrtr2へpingを通せることはないと思います。

iosモジュールって、どのバージョンのiosまでサポートしてるのでしょうか?僕はNWエンジニアではなく、Ciscoのコマンド詳しくないのですが、この前GNS3でvlan作るPlaybook実行したら、vlan databaseってコマンドでvlan切るタイプでPlaybookが通らず。。。IOSってVersionによってコマンドが違うっていうのを聞いてます。

module のドキュメントを見ますと、Tested against IOS 15.6 と書いてあるのをよく見ます。
下位Versionはどこまでテストしてるのでしょうか?

こちらをご参照ください \url{https://access.redhat.com/articles/3185021}

「ホスト変数」 は inventory 内で 定義されるもので、「 グループ変数 」とは 別の 役割/有効範囲 を持つ、という理解で合ってますでしょうか? ( 登場箇所の例: 演習 1-1 の 最初「環境の調査」内、ステップ 3: インベントリを理解する )

ホスト変数は、定義されたホストがTaskを実行する際に使用されます。変数のスコープについては、下記3つが存在します。

Global … ansible.cfg等で定義されている変数です。
Play … 各Playの中のvarsセクションでの定義やvars_file等で定義された変数です。
Host … インベントリ内での定義など、各ホストに対して定義された変数です
\url{https://docs.ansible.com/ansible/latest/user\_guide/playbooks\_variables.html#variable-scopes}

なるほど! すっきりしました! ありがとうございます。  「グループ変数」も Play のスコープになりますかね?

Groupの場合はHostに含まれます。(グループ変数は定義したグループに所属するホストに対して一括で変数を定義できますが、Playbook実行時にはホスト変数と同様に扱われます)
詳細はこちらをご覧ください: \url{https://docs.ansible.com/ansible/latest/user\_guide/intro\_inventory.html#group-variables}
・\url{https://52.194.213.145/}

routerの設定を削除するときに,no ip route等をやりたくなってしまうのですが,ansibleで操作する際は,state: absentを使用するほうがいいのでしょうか?また,no xxxでしか削除できない部分もあるのでしょうか?

ios_vlanのように特定の何かを設定するモジュールであれば、absentで消していただくのが良いです。
ルーターの全ての機能にそれぞれ対応したモジュールがあるわけではありませんので、対応していない場合にはcommandモジュールにてno XXXと入れる場合があります。

[ぼそっと…] YAMAHA RTX モジュール欲しいですねえ… Network の Ansible 適用情報的には、 ios (CISCO) と junos (Juniper) 、Alaxala さんが多い感じですが、YAMAHA や Aruba / hp がんばって欲しい…

telnet module を使う例はありました \url{https://qiita.com/ken5owata/items/1bb2c6aecc677b9bdc66} (RHの人がQiitaを貼るという)
それ書いたの僕ですねwww、YamahaはSSHでコマンド叩けないんで厳しいような。。機種によりますかね?RTX1100でしか試していないのですが。。

(なんかすみません)

\url{http://kakkotetsu.hatenablog.com/entry/2017/05/13/153443} ではなくて?
YAMAHAはSSH の command execができないんです。。
YAMAHAの中の方が、Interopでお会いした時にAnsible対応考えてないと言ってたような。

└→ 無念残念 …

そういう機器にも使えるモジュールを!と頑張っていらっしゃる方もいるので乞うご期待!!

Aruba は、要件次第でごにょごにょ。。。個別に相談してください。

ArubaはModuleあったけどまだ少ないか
\url{https://docs.ansible.com/ansible/2.4/aruba\_config\_module.html}
⇒「 Status: This module is flagged as preview 」だった…

テスト環境は必要ですね
現在の設定情報を集めるためにも使える
Tower の評価用ライセンスは ansible-jp@redhat.com へご連絡ください

Tower と AWX の機能差分は結構あります

runtime が違います (AWXではcontainerで動いています)
アップデートが 2~3週程度ごとに行われています
enterprise な機能は Tower だけにあります
AWX にはマニュアルがありません
Towerの公式ドキュメントはこちら: \url{https://docs.ansible.com/ansible-tower/}
特に: Job Isolation , Isolated Hosts (←スペル違う?)

我的感受

我只需要一种选项:虽然途中有14位参与了调查。

アンケート1.png

听说有一些人对于满意度稍微不太高,但相对来说还是不错的吧。(5为满意)

難易度.png

我們要求根據難度評分從非常容易(1)到非常困難(5)的範圍內回答。大多數人覺得這道題目是普通水平的,但也有一些人覺得有一部分難度較高。

動機.png

我询问了参加的动机。有多个回答,包括个人业务改善、部门决定使用Ansible等各种原因。当然也有回答是因为暂时对Ansible很喜欢!

有关NW的管理和运营方面是否遇到了困难,在自由评论中也有如下的回答。

农场批量更新,批量保存设置
虽然我没有处理过,但我认为使用Ansible可以更轻松地处理
基本上我们主要利用云技术,所以没有特别的问题。
设备数量多,库存管理很麻烦(例如移动SFP)…
没有进行任何管理自动化
设备配置与管理台账或参数表之间存在偏差
我没有进行网络设备的管理运营,所以无法回答。非常抱歉。
我是服务器工程师,平时不负责网络设备的管理和运维。非常抱歉。
操作手册运营即将变得不现实…希望考虑到云时代的运维体制/网络设备=Aruba/hp/YAMAHA/SonicWall
由于规模变大,同时投入设置的工作量很大。因此,我正在寻找ansible引入所需的信息
每周的策略添加工作/配置更改
配置操作前后的差异比较和有效性确认方法,用于世代管理的上传和方法,临时状态确认,日志获取方法的统一,等等。

首先,有人提到网络领域本身存在着自动化尚未实施的问题,似乎存在一些挑战。此外,正如在我们的集会上提到的那样,我们已经建立了一个Slack社区,在那里可以让Ansible用户之间进行各种意见交流。你可以从这里参加进来。

alt