rubyでnetconf叩いてみる。


参考サイト

事前準備

gem install sinatra
gem install netconf
gem install nokogiri
gem install activerecord
gem install mysql2
gem install netaddr
gem install sinatra-contrib
gem update
gem update --system

mysqlがこけるので。リトライすると、今度はclient側のライブラリがないので

apt-get install mysqld
apt-get install libmysqlclient-devel

vSRXは普通にJuniperから落としてきて試用版をインストール。
実は、VMWarePlayer上にESXiをインストールしてその上でvSRXやCentOSを動かして環境を構築したりしているけれど、あまりここでは触れない。

試用版は15.1なのでRESTAPIも叩けるはずだけれど、今回の条件的にNetconfを使用する。

OSはcygwinでやろうとしたが、いざ動かすとnetconfが呼び出しているssh.rbがコケているようで、 あまり深く考えたくないので、centosでやり直すことにした。

でも同じ状況になる。

ふと、vSRX側で弾いてないかと確認してみたら、設定入ってなかった。 vSRX側で以下を投入。

set system services netconf ssh

以下のように取得できた。

NETCONF v.0.3.1
Connecting to device: 192.168.20.1
Connected.
Retrieving full config, please wait ...
Showing 'system' hierarchy ...
<system>
        <host-name>SRX1</host-name>
        <time-zone>Asia/Tokyo</time-zone>
        <root-authentication>
            <encrypted-password>$1$YMZBdShB$Tzfvz15ZRlVBbF7G.zqYC.</encrypted-password>
        </root-authentication>
        <name-server>
            <name>192.168.11.1</name>
        </name-server>
        <login>
            <user>
                <name>******</name>
                <uid>2000</uid>
                <class>super-user</class>
                <authentication>
                    <encrypted-password>$1$LyxNAHb0$FqaIeC67p9zXYQNooZ80J.</encrypted-password>
                </authentication>
            </user>
        </login>
        <services>
            <ssh>
            </ssh>
            <telnet>
            </telnet>
            <netconf>
                <ssh>
                </ssh>
            </netconf>
            <web-management>
                <http>
                    <interface>fxp0.0</interface>
                </http>
            </web-management>
        </services>
        <syslog>
            <user>
                <name>*</name>
                <contents>
                    <name>any</name>
                    <emergency/>
                </contents>
            </user>
            <file>
                <name>messages</name>
                <contents>
                    <name>any</name>
                    <any/>
                </contents>
                <contents>
                    <name>authorization</name>
                    <info/>
                </contents>
            </file>
            <file>
                <name>interactive-commands</name>
                <contents>
                    <name>interactive-commands</name>
                    <any/>
                </contents>
            </file>
        </syslog>
        <license>
            <autoupdate>
                <url>
                    <name>https://ae1.juniper.net/junos/key_retrieval</name>
                </url>
            </autoupdate>
        </license>
        <ntp>
            <boot-server>192.168.20.3</boot-server>
            <server>
                <name>192.168.20.2</name>
            </server>
            <server>
                <name>133.243.238.242</name>
            </server>
        </ntp>
    </system>

以上。次は、DBに入れて連携するところまで試そう。

Next Post