ot2sy39's note

twitter 140文字じゃ書けないときの外部エントリみたいな

NVR510でAnsibleを試してみた

ヤマハRTXシリーズのAnsible対応はないものだと諦めていたのに、昨日突如リリースされた。

www.rtpro.yamaha.co.jp

さっそく、Windows10にWSLのUbuntu 20.04 LTSとAnsibleを入れてサンプルコードを試してみた。

---
- hosts: nvr510
  connection: network_cli

  tasks:
    - name: get configuration
      yamaha_network.rtx.rtx_command:
        commands: show config
      register: result

    - name: debug
      debug:
        msg: "{{ result.stdout_lines[0] }}"

    - name: set description
      yamaha_network.rtx.rtx_config:
        lines:
          - description 1 yamaha

  vars:
    ansible_network_os: yamaha_network.rtx.rtx
    ansible_user: loginusername
    ansible_ssh_pass: sshloginpassword
    ansible_become: true
    ansible_become_password: administratorpassword

結果↓

f:id:ot2sy39:20210330101410p:plain
サンプルコードの実行結果

バッチリ。Configにもちゃんとdescription 1 yamahaと書き込まれている。Ansibleがヤマハでも使えるとなれば、ちゃんと何ができるか調べないといかんな。

作業メモ

Ansibleのインストール作業自体に手間取ったのと、ヤマハのWebで公開されているサンプルコードがそのままコピーするとインデントがyml的におかしくて動かないので少し苦労した。

ymlもAnsibleも詳しくないので、もしかしたら、上に掲載したコードもインデントが正しくない部分があるかも。

やったこと

以下のインストール作業と、ルータにsshログイン用ユーザを作ること、WSLのsshコマンドで1度ルータにアクセスしておくこと。

インストール作業では、ansible.netcommonとparamikoを直接インストールする必要があったが、これは私の手順が悪いのかもしれない。PythonやAnsible、そしてUbuntu自体を使い慣れていないので、以下のコマンド群で(実行順を含めて)正しいのかよくわからない。もっとスマートな方法がある気がする。

sudo apt update
sudo apt upgrade

sudo apt-get update
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible

ansible --version

ansible-galaxy collection install yamaha_network.rtx
ansible-galaxy collection install ansible.netcommon

sudo apt-get install python3-pip
pip3 install paramiko