てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] Collection 管理の mazer は Ansible 2.9 で非推奨に、ansible-galaxy collection サブコマンドに統合へ

はじめに

Ansible 2.8 から Ansible Collection という新たな配布方式が、Experimental support という位置づけではじまりました。

ロールだけでなく、モジュール、プラグインもまとめて配布できるのが特徴です。

galaxy.ansible.comでも、TypeCollection にすることで、Collection を探すことができます。現状、google.cloud などの Collection があります。

f:id:akira6592:20190924102945p:plain:w450
Type を Collection に指定すると Collection を探せる

管理ツール mazer は ansible-galaxy collection に統合へ

Collection のインストールなどを行うツールとして、mazerが開発されていました。

mazer も実験的なツールだったようで、Ansible 2.9 では非推奨になり、以下の通り ansible-galaxy コマンドの collection コマンドとして機能統合されました。

github.com

おおまかには、例えば、

mazer install hoge.fuga

ansible-galaxy collection install hoge.fuga

のようになります。

今後、Collection としてどのようなものが配布されるのか気になります。

参考

[Ansible] 見知らぬ Ansible 環境に入った時に確認したいこと

はじめに

「ここに Ansible があります。あなたはこの環境を使います。」と言われた時、何をすればよいでしょうか。

この記事では、自分で管理していない環境の Ansible を使う事になった場合に、環境を調査するためのコマンドを紹介します。

以下ツイートの補足です。


■ Ansible のバージョンの確認

インストールされている Ansible のバージョンを確認するコマンドは以下のとおりです。

ansible --version

実行例: ansible --version

[ansible@038432d6b255 ansible]$ ansible --version
ansible 2.7.10
  config file = /home/ansible/ansible/ansible.cfg
  configured module search path = ['/home/ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.6.8 (default, Aug  7 2019, 17:28:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

上記の実行例では、以下のことが分かります。

  • Ansible のバージョンは 2.7.10
  • 設定ファイルは /home/ansible/ansible/ansible.cfg を利用
  • Ansible自身 を実行する Python のバージョンは 3.6.8
    • Ansible が接続する先のマシンで実行する Python のバージョンではないの注意


■ デフォルトから変更されている設定の確認

Ansible には、SSH 接続時のホストキーのチェック有無や、実行プロセスのフォーク数など、設定を管理する仕組みがあります。ansible.cfg というファイル名の設定ファイルや、環境変数などで設定できます。

思ったとおりの挙動にならない、あっちの環境と違う・・、とハマることを避けるために、デフォルトから変更されている設定を確認しておきたいところです。

確認するコマンドは以下のとおりです。

ansible-config dump --only-changed

実行例: ansible-config dump --only-changed

[ansible@038432d6b255 ansible]$ ansible-config dump --only-changed
DEFAULT_ROLES_PATH(env: ANSIBLE_ROLES_PATH) = ['/etc/ansible/myroles']
HOST_KEY_CHECKING(/home/ansible/ansible/ansible.cfg) = False

上記の実行例では、以下のことが分かります。

  • ロールを読み込む際のパスの設定 DEFAULT_ROLES_PATHが、環境変数 ANSIBLE_ROLES_PATH によって、/etc/ansible/myroles に変更されている。
    • デフォルトは ~/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles
  • SSH接続先のフィンガープリントチェックの有無の設定 HOST_KEY_CHECKING が、設定ファイル /home/ansible/ansible/ansible.cfg によって、False に変更されている。
    • デフォルトは True

補足


まとめ

自分で管理していない環境の Ansible を使う事になった場合に、環境を調査するためのコマンドを紹介しました。

他にもよい調べ方、追加で調べたほうが良いことなどがありましたら、 @akira6592 までご連絡いただけると幸いです。

[Ansible] Visual Studio Code で Playbook を書く時に便利な拡張たち

はじめに

Visual Studio Code(以下、VS Code)で Ansible の Playbook を書く時に、私が便利に利用させてもらっている拡張をご紹介します。

「自分は WindowsVS Code 使ってて、Ansible は SSH 先の Linux だから関係ないや。」という方も、最後の「Remote Developement」まで見ていただけると幸いです。手元が Windows でも通用します。

  • 動作確認環境: VS Code 1.38.1

その前に・・標準ではどんな感じに?

VS Code では特に拡張を入れなくてもある程度は Playbook が書きやすいようになっています。

具体的には Playbook の拡張子を .yml または .yaml にするこことで、言語として YAML が選択されます。

これにより、シンタックスハイライトが効くようになり、見やすくなります。 オートインデントや、インデントのレベルに応じた折りたたみ、展開も標準でできます。

f:id:akira6592:20190921113901p:plain
デフォルトでも見やすい

標準のこの状態から、拡張をいくつかインストールすることによって、もっと Playbook が書きやすくなります。

一覧

以下が今回ご紹介する拡張です。

名前 作成者 概要
YAML Red Hat YAML のバリデーションなど
indent-rainbow oderwat インデントのレベルを区別しやすく色付け表示
Ansible Microsoft オートコンプリートや環境との連携など
Remote Development Microsoft リモートの環境を手元の VS Code で直接編集、デバッグなど

YAML

marketplace.visualstudio.com

Ansible といえば Playbook。Playbook といえば YAML。ということで、YAML という拡張をインストールしています。

拡張の説明としては

YAML Language Support by Red Hat, with built-in Kubernetes and Kedge syntax support

とのことですが、Kubernetes に限らず普通に YAML を書く上で便利です。

例えば以下のような機能があります。

f:id:akira6592:20190921112428p:plain
シンタックスエラーを検出

この拡張の設定を色々カスタマイズすると、もっと便利になるかも知れません。

[2019/10/01 追記]

こちらの説明にあるように、schemas を読み込ませることで、様々な形式のフォーマットでオートコンプリートなどができるようになるようです。 例えば、setting.json に以下のように設定すると、JSON Schema Store のAnsible 2.7 のタスク定義のオートコンプリートが効くようになりました。

    "yaml.schemas": {
        "http://json.schemastore.org/ansible-stable-2.7": "/*.yml"
    }

モジュール名だけでなく、オプションもオートコンプリートが効きました。

f:id:akira6592:20191001213218g:plain
モジュール名もオプションもオートコンプリート

- hosts: から書き始めるとエラーになるので、Playの定義でなくタスクの定義に特化したSchemaのようです。


■ indent-rainbow

marketplace.visualstudio.com

YAML は インデントが命です。標準でもカーソル行のインデントレベルに応じたガイドが表示され、分かりやすいようになってきています。もっと分かりやすく するために、indent-rainbow という拡張をインストールしています。

インデントレベルに応じて虹色になります。

f:id:akira6592:20190921112331p:plain
虹色になってインデントレベルが分かりやすい

デフォルトでは色が見にくいと感じるかも知れませんが、設定によって色を変更できます。


■ Ansible

(2021/03/13 追記: 現在開発は停止し、RETIRED, please uninstall. と記載されています)

marketplace.visualstudio.com

そのものずばり、Ansible という拡張です。

  • モジュール名などのオートコンプリート
  • スニペット
  • YAML のバリデーション
  • Azure Cloud Shell や Docker などの 実行環境との連携

などのざまざまな機能があります。ここでは、私が特に便利だと感じている機能を紹介します。

オートコンプリート

モジュール名などがオートコンプリートされます。更に嬉しいことに、該当モジュールのドキュメントへのリンクも表示されます。

f:id:akira6592:20190921112504p:plain
オートコンプリート

YAML バリデーション

また、YAML のバリデーションも強力です。例えば、キーが重複している時にお知らせしてくれます。

f:id:akira6592:20190921112537p:plain
キーの重複を検出

試した限り、このバリデーションは YAML という拡張ではできませんでした。

なお、ansible-playbook コマンド では、Playbook 内のキーが重複して居る場合、最後の定義が優先になります。同時に WARNING が表示されますが、そのまま実行されます。意図しない動作を防止するため、Playbook を書く段階でキーの重複に気づける仕組みがあるのは助かります。

Playbook に限れば、YAML という拡張は不要かも?


■ Remote Developement

marketplace.visualstudio.com

Playbook を書く時に限らず、本当に便利です。 SSH、WSL、コンテナなど、リモートの環境やファイルを手元の VS Code で直接編集、デバッグできるようになります。

例えば「普段は WindowsVS Code を使っているが、Ansible が入っているのは LinuxVM。なので、SSH でログインして vi で Playbook を書いている。できれば Windows 上の VS Code で直接編集 したい・・・」というような方におすすめです。

Remote Revelopement では、接続先の種類に合わせて以下の3つの拡張を必要に応じてインストールします。

私は今のところ、Remote - SSH を利用しています。

なお、他にも SSH FS のようにリモートのファイルシステムをマウントできる拡張はあります。Remote Revelopement の強みは、単にファイルシステムのマウントだけでねく、リモートデバッグできる点だと思います。(Playbookを書くという点ではあまり関係ないですが)



まとめ

Visual Studio Code で Playbook を書く時に便利な拡張をご紹介しました。 私自身もまただま使いこなせていない感はありますが、楽に Playbook を書きたい方、YAMLシンタックスエラーで疲れ気味な方におすすめです。

参考

vim の場合

tekunabe.hatenablog.jp

ターミナル上のログをコピペする時に便利な範囲指定方法

はじめに

ターミナルソフトでコマンドを実行して、結果をどこかにコピペしたいとき、画面を遡って範囲指定することはないでしょうか。

f:id:akira6592:20190920211319g:plain
画面を遡ってスクロール

遡るのは「あ、行き過ぎた」ということ往々として起こり、少し面倒だと思います。

※もちろん、もともとログを取得する設定にしていれば、そもそもこのような操作をする必要はありません。

便利な範囲指定の方法

こんな時に、私が便利だと思っているコピペの範囲指定のやり方をご紹介します。ここでは Tera Term での操作を前提とします。

f:id:akira6592:20190920211728g:plain
コピー開始位置をあらかじめ選択おくと楽

紙芝居

動画だけですと分かりにくいので、紙芝居で説明します。

f:id:akira6592:20190920211911p:plain
1
f:id:akira6592:20190920211928p:plain
2
f:id:akira6592:20190920211941p:plain
3
f:id:akira6592:20190920212020p:plain
4

この操作は、先輩の作業を横で見ている時に知りました。人の作業を見ていると気づきがあって楽しいですね。

CentOS 7.7 で リポジトリ追加なしで Python 3 を yum でインストールする

はじめに

CentOS 7.7 (1908) がリリースされました。

リリースノートの「5. Major Changes」には以下のように記載があります。

Python 3 is now available. Installing the python3 package gives you the Python 3.6 interpreter.

IUS Community Project といったリポジトリ追加なしに、さくっと Python 3 をインストールできるようなので試してみます。

なお、Red Hat Enterprise Linux 7.7 のリリースノートの「新しいパッケージ - python3」にも同じ旨の記載はありました。

※記事を書いた後に追記 少し気になって、以前のバージョンの CentOS にさかのぼって試したところ、リポジトリ追加なしで yum install python3 できました。以前からできましたっけ・・・・。少し記憶が曖昧です。もし CentOS 7.7 の「Python 3 is now available.」とは関係ないようでしたら、@akira6592 までご連絡いただけると幸いです。CentOS 7 系のパッケージを確認すると python3* があるので、CentOS 7 系共通で使えるようになったということでしょうか。

CentOS 7.7 (1908) の準備

現時点で、7.7 の Vagrant boxや、Docker イメージはありません。そのため、centos.orgでイメージをダウンロードしてインストールします。今回は VirtualBox 上のVM として準備しました。

$ cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)

デフォルトの状態の確認

OS インストール後のデフォルトの Python バージョンは Python 2.7 系のままです。

$ python --version
Python 2.7.5

リポジトリリストは以下の通り。

$ yum repolist 
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
リポジトリー ID                    リポジトリー名                        状態
base/7/x86_64                      CentOS-7 - Base                       10,097
extras/7/x86_64                    CentOS-7 - Extras                        304
updates/7/x86_64                   CentOS-7 - Updates                       310
repolist: 10,711

yum list python3* は以下のような結果になりました。

$ yum list python3*
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
base                                                                                                                        | 3.6 kB  00:00:00     
extras                                                                                                                      | 2.9 kB  00:00:00     
updates                                                                                                                     | 2.9 kB  00:00:00     
(1/4): base/7/x86_64/group_gz                                                                                               | 165 kB  00:00:00     
(2/4): extras/7/x86_64/primary_db                                                                                           | 152 kB  00:00:00     
(3/4): updates/7/x86_64/primary_db                                                                                          | 1.1 MB  00:00:00     
(4/4): base/7/x86_64/primary_db                                                                                             | 6.0 MB  00:00:00     
利用可能なパッケージ
python3.i686                                                                   3.6.8-10.el7                                                    base
python3.x86_64                                                                 3.6.8-10.el7                                                    base
python3-debug.i686                                                             3.6.8-10.el7                                                    base
python3-debug.x86_64                                                           3.6.8-10.el7                                                    base
python3-devel.i686                                                             3.6.8-10.el7                                                    base
python3-devel.x86_64                                                           3.6.8-10.el7                                                    base
python3-idle.i686                                                              3.6.8-10.el7                                                    base
python3-idle.x86_64                                                            3.6.8-10.el7                                                    base
python3-libs.i686                                                              3.6.8-10.el7                                                    base
python3-libs.x86_64                                                            3.6.8-10.el7                                                    base
python3-pip.noarch                                                             9.0.3-5.el7                                                     base
python3-rpm-generators.noarch                                                  6-2.el7                                                         base
python3-rpm-macros.noarch                                                      3-32.el7                                                        base
python3-setuptools.noarch                                                      39.2.0-10.el7                                                   base
python3-test.i686                                                              3.6.8-10.el7                                                    base
python3-test.x86_64                                                            3.6.8-10.el7                                                    base
python3-tkinter.i686                                                           3.6.8-10.el7                                                    base
python3-tkinter.x86_64                                                         3.6.8-10.el7                                                    base
python3-wheel.noarch                                                           0.31.1-4.el7                                                    base

python 3 のインストール

それでは python3 をインストールします。

$ sudo yum install python3
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ty1.mirror.newmediaexpress.com
 * extras: ty1.mirror.newmediaexpress.com
 * updates: ty1.mirror.newmediaexpress.com
base                                                                                                                                                                      | 3.6 kB  00:00:00     
extras                                                                                                                                                                    | 2.9 kB  00:00:00     
updates                                                                                                                                                                   | 2.9 kB  00:00:00     
(1/4): extras/7/x86_64/primary_db                                                                                                                                         | 152 kB  00:00:00     
(2/4): base/7/x86_64/group_gz                                                                                                                                             | 165 kB  00:00:00     
(3/4): updates/7/x86_64/primary_db                                                                                                                                        | 1.1 MB  00:00:00     
(4/4): base/7/x86_64/primary_db                                                                                                                                           | 6.0 MB  00:00:01     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ python3.x86_64 0:3.6.8-10.el7 を インストール
--> 依存性の処理をしています: python3-libs(x86-64) = 3.6.8-10.el7 のパッケージ: python3-3.6.8-10.el7.x86_64
--> 依存性の処理をしています: python3-setuptools のパッケージ: python3-3.6.8-10.el7.x86_64
--> 依存性の処理をしています: python3-pip のパッケージ: python3-3.6.8-10.el7.x86_64
--> 依存性の処理をしています: libpython3.6m.so.1.0()(64bit) のパッケージ: python3-3.6.8-10.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ python3-libs.x86_64 0:3.6.8-10.el7 を インストール
--> 依存性の処理をしています: libtirpc.so.1()(64bit) のパッケージ: python3-libs-3.6.8-10.el7.x86_64
---> パッケージ python3-pip.noarch 0:9.0.3-5.el7 を インストール
---> パッケージ python3-setuptools.noarch 0:39.2.0-10.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ libtirpc.x86_64 0:0.2.4-0.16.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

=================================================================================================================================================================================================
 Package                                               アーキテクチャー                          バージョン                                        リポジトリー                             容量
=================================================================================================================================================================================================
インストール中:
 python3                                               x86_64                                    3.6.8-10.el7                                      base                                     69 k
依存性関連でのインストールをします:
 libtirpc                                              x86_64                                    0.2.4-0.16.el7                                    base                                     89 k
 python3-libs                                          x86_64                                    3.6.8-10.el7                                      base                                    7.0 M
 python3-pip                                           noarch                                    9.0.3-5.el7                                       base                                    1.8 M
 python3-setuptools                                    noarch                                    39.2.0-10.el7                                     base                                    629 k

トランザクションの要約
=================================================================================================================================================================================================
インストール  1 パッケージ (+4 個の依存関係のパッケージ)

総ダウンロード容量: 9.5 M
インストール容量: 48 M
Is this ok [y/d/N]: y
Downloading packages:
警告: /var/cache/yum/x86_64/7/base/packages/python3-3.6.8-10.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY
python3-3.6.8-10.el7.x86_64.rpm の公開鍵がインストールされていません
(1/5): python3-3.6.8-10.el7.x86_64.rpm                                                                                                                                    |  69 kB  00:00:00     
(2/5): libtirpc-0.2.4-0.16.el7.x86_64.rpm                                                                                                                                 |  89 kB  00:00:00     
(3/5): python3-pip-9.0.3-5.el7.noarch.rpm                                                                                                                                 | 1.8 MB  00:00:00     
(4/5): python3-setuptools-39.2.0-10.el7.noarch.rpm                                                                                                                        | 629 kB  00:00:00     
(5/5): python3-libs-3.6.8-10.el7.x86_64.rpm                                                                                                                               | 7.0 MB  00:00:01     
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                             6.1 MB/s | 9.5 MB  00:00:01     
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-7.1908.0.el7.centos.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : libtirpc-0.2.4-0.16.el7.x86_64                                                                                                                                   1/5 
  インストール中          : python3-setuptools-39.2.0-10.el7.noarch                                                                                                                          2/5 
  インストール中          : python3-pip-9.0.3-5.el7.noarch                                                                                                                                   3/5 
  インストール中          : python3-3.6.8-10.el7.x86_64                                                                                                                                      4/5 
  インストール中          : python3-libs-3.6.8-10.el7.x86_64                                                                                                                                 5/5 
  検証中                  : libtirpc-0.2.4-0.16.el7.x86_64                                                                                                                                   1/5 
  検証中                  : python3-setuptools-39.2.0-10.el7.noarch                                                                                                                          2/5 
  検証中                  : python3-libs-3.6.8-10.el7.x86_64                                                                                                                                 3/5 
  検証中                  : python3-3.6.8-10.el7.x86_64                                                                                                                                      4/5 
  検証中                  : python3-pip-9.0.3-5.el7.noarch                                                                                                                                   5/5 

インストール:
  python3.x86_64 0:3.6.8-10.el7                                                                                                                                                                  

依存性関連をインストールしました:
  libtirpc.x86_64 0:0.2.4-0.16.el7             python3-libs.x86_64 0:3.6.8-10.el7             python3-pip.noarch 0:9.0.3-5.el7             python3-setuptools.noarch 0:39.2.0-10.el7            

完了しました!
$

Python 3.6.8 がインストールされました。

これで、あらたに python3python3.6 などのコマンドを利用できるようになました。

$ python3 --version
Python 3.6.8
$ python # tab 
python      python2     python2.7   python3     python3.6   python3.6m  

フルパスの確認です。

$ which python3
/usr/bin/python3
$  which python3.6
/usr/bin/python3.6

pip3 コマンドも利用できるようになりました。

 # pip3 search ansible
(...略...)
ansible (2.8.5)                            - Radically simple IT automation
(...略...)

バージョンなしの pip コマンドは使えませんでした。

なお、Python コマンド自身は Python 2.7 のままです。

$ python --version
Python 2.7.5

まとめ

CentOS 7.7 (1908) でリポジトリ追加なしで yum install python3Python 3 がインストールできることを確認しました。

「あのリポジトリのパスなんだったけな」と調べずに、いきなり yum install python3 を実行できるのは便利だと感じました。

[Ansible] フィルターを手軽に試行錯誤したいときの ansible-console コマンドの使い方

はじめに

Anislbe には、値を変換したり取り出したりする、さまざまなフィルター機能があります。 しかし、Playbook を書かく時、なかなか意図通りにフィルターできないこともあるのではないしょうか。 このようなときは、毎回 Playbook を実行するのも手間になり「とにかく手軽にフィルターを試行錯誤したい」と思うこともあると思います(私はあります)。

そんな時に便利な ansible-console コマンドの使い方をご紹介します。

なお、本来は ansible-console コマンドはフィルターの確認だけでなく、Plyabook と同じようにモジュールを実行できますが、この記事では特定用途に限って紹介をします。

  • 動作確認環境: Ansible 2.8.5

ansible-console コマンドの使い方

以下、一連の流れです。

$ ansible-console -i localhost,  # 接続先は問わないのでここでは localhost のみ
Welcome to the ansible console.
Type help or ? to list commands.

test@all (1)[f:5]$ debug msg={{ 10 | random }}  # random フィルター確認
localhost | SUCCESS => {
    "msg": "6"
}
test@all (1)[f:5]$ debug msg={{ 10 | random }}  # 再度確認(↑キーで履歴呼び出し)
localhost | SUCCESS => {
    "msg": "2"
}
test@all (1)[f:5]$ debug msg={{ [3, 4, 2] | max }}  # max フィルター確認
localhost | SUCCESS => {
    "msg": "4"
}
test@all (1)[f:5]$ debug msg={{ [3, 4, 2] | min }}  # min フィルター確認
localhost | SUCCESS => {
    "msg": "2"
}
test@all (1)[f:5]$ exit     # 終了

[test@6175d1755f33 ~]$ 

より雰囲気をお伝えするため、同じ内容を動画にしたものを載せます。

www.youtube.com

参考

その他、多少環境の準備は必要ですが試行錯誤しやすい点では、Jupyter Notebook の Ansible カーネルである ansible-jupyter-kernel も便利です。

[Ansible] 変数 ansible_network_os に指定できる値 (eos/ios/nxos/junosなど)

変数 ansible_network_os とは

Ansible のネットワークモジュールでは、多くの場合ansible_network_os という変数に、どのプラットフォーム(Cisco IOS、Arista EOS など)を対象とするか指定する必要あります。

サンプルの Playbook でも見かけることは多いのではないでしょうか。

指定できる値

具体的にどのプラットフォームを対象とするときに、どのような値をしていすればよいかは、公式ドキュメントのSettings by Platform にまとまっています。

Network OS ansible_network_os
Arista EOS eos
Cisco ASA asa
Cisco IOS ios
Cisco IOS XR iosxr
Cisco NX-OS nxos
Dell OS6 dellos6
Dell OS9 dellos9
Dell OS10 dellos10
Extreme EXOS exos
Extreme IronWare ironware
Extreme NOS nos
Extreme SLX-OS slxos
Extreme VOSS voss
F5 BIG-IP (不要)
F5 BIG-IQ (不要)
Junos OS junos
Lenovo CNOS cnos
Lenovo ENOS enos
MikroTik RouterOS routeros
Nokia SR OS sros
Pluribus Netvisor netvisor
VyOS vyos

※ Ansible 2.8 現在の Settings by Platform から

具体例

以下は、変数定義ファイルで ios を指定する例です。

---
ansible_connection: network_cli
ansible_network_os: ios             # ここ
ansible_user: dummyuser
ansible_password: dummypassword

各プラットフォームごとに必要な変数については、Platform Options を参照してください。