AnsibleでJunosのバージョン情報を取得

     - ネットワーク , ,  


インフラ開発部 松田です。

今回は弊社で検証中のAnsibleについて書きます。

Ansibleを使ったサーバ構築の記事は最近よく見かけますが、私が触る機会の多いネットワーク機器も操作できる(Ansibleはエージェントレス)ということで、Ansible+NW機器について色々書いていきます。

初回はJunosのバージョンをAnsibleを使用して取得してみます!

Ansible
AnsibleとはPythonベースの構成管理ツールです。
ただ構成管理以外にも任意のコマンドをリモートで実行し、結果を取得するなどオーケストレーションツールとしてもAnsibleは利用できます。

詳細は入門Ansible著者のそこはかとなく書くよん。をご参照ください。

Junos
Juniper Networksのアプライアンス製品に搭載されているFreeBSDをベースに開発されたOS。SSG/NetScreenシリーズに搭載されていたScreenOSとは操作や設定が大きく異なる。

環境
今回は以下の環境で検証を実施しました。

    OS X 10.9.5
    VirtualBox 4.3.18
    Vagrant 1.6.3
    Homebrew 0.9.5
    ansible 1.8.1

環境準備
VirtalBox上にJunosのホストを立て検証します。

まずはvagrantにJunosのイメージを持ってきます。

確認。

続いて初期化。

Vagrantfileは変更せずそのまま起動。

接続情報をconfigへ。

config内のhost名を任意のものに変更してログイン。
(ここではdefault→junosに変更)

Ansibleで操作するためにJunosのnetconfを有効化。

Ansibleの準備
インストール。

Ansible GalaxyからJuniper.junosのrole(playbookを分割して再利用や共有する機能)を取得。

Juniper.junosに必要なモジュールをインストール。

最後にinventoryファイル(対象nodeを記載するファイル)、
playbook(ansibleで実行する手順書のようなもの)を準備。

[html title=”hosts-junos”]
[junos]
junos
[/html]

[html title=”playbook.yml”]

– name: Show facts playbook
hosts: junos
roles:
– Juniper.junos
connection: local
gather_facts: no

tasks:
– name: get facts
junos_get_facts:
host={{ inventory_hostname }}
user=root
register: junos
– name: show facts
debug: msg="{{ junos.facts.version }}"
[/html]

ansibleを実行!

まとめ
vagrantで検証用のJunosを構築し、ansibleを使ってJunosのステータスを取得しました。
Juniper.junosには他にも設定の追加(junos_install_config)やOSのアップデート(junos_install_os)、nodeの再起動(junos_shutdown)などのモジュールが含まれていたので機会があったら試してみたいと思います。

参考
Ansible for Junos OS
VAGRANT CLOUD
Juniper.junos Ansible Modules


DACエンジニア採用情報

  関連記事

AWSのcredentialsを注意して取り扱う話

はじめに 最近ではオンプレミスでサーバを自前で用意する他に、クラウドサーバを使う機会が増えているかと思います。 弊社では、Amazon Web Services (AWS)を利用しており、多くの処理をAWS上で行っています。 AWSを利用していくにあたっては、アクセス情報(credentials)を …

GCP上でCoreOSクラスタを作ってコンテナ起動をしてみた

Google Cloud Platform(GCP)上でCoreOS + etcd +  fleet + docker でコンテナ起動まで行ったので紹介したいと思います。 CoreOSの起動 CoreOSは、コンテナの実行環境を構築することに特化したLinuxディストリビューションです。 なお、この …

Burpの使い方!

こんにちは、第二ソリューション開発部の谷口です。 受託開発の部署で開発を担当してます。 APIを扱う機会が多く、今回は通信内容を確認するためのローカルプロキシツール「Burp」について書かせて頂きます。 Burpとは Webアプリケーション開発時の検証において、Webサーバとブラウザ間の通信内容を確 …