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で実行する手順書のようなもの)を準備。

[junos]
junos
---
- 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  }}"

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エンジニア採用情報

  関連記事

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

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

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

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