👻
Ansibleを試してみた(セットアップ編)
構成
こんな感じ
環境
- ubuntu 20.04.5
- Python 3.8.10
- pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
- JUNOS Software Release [12.1X47-D15.4]
セットアップ
ubuntu
とりあえずhomeディレクトリをばっちくしたくないのでansibleディレクトリを作る
ban@UoVb:~$ mkdir ansible
で、なにはともあれまずはおまじない
ban@UoVb:~/ansible$ sudo apt update
ban@UoVb:~/ansible$ sudo apt upgrade
ansibleをインストールする(環境に依るが結構時間かかる)
ban@UoVb:~/ansible$ pip install ansible
インストール完了
ban@UoVb:~/ansible$ pip list | grep ansible
ansible 6.4.0
ansible-core 2.13.5
ban@UoVb:~/ansible$
ちなみにこんなメッセージが出るけど、頑張って読むと各種ansibleのスクリプトをインストールしたのは/home/ban/.local/binだよってことで、もしPATH通してないんだったら通してねという意味っぽい
WARNING: The scripts ansible, ansible-config, ansible-connection, ansible-console, ansible-doc, ansible-galaxy, ansible-inventory, ansible-playbook, ansible-pull and ansible-vault are installed in '/home/ban/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
WARNING: The script ansible-community is installed in '/home/ban/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
で、実際にPATH見てみると確かに $HOME/.local/bin が通ってない
ban@UoVb:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
でも、.profileにはちゃんと書いてある
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
と、いうことでもっかい読み込み
ban@UoVb:~$ source .profile
ちゃんと通った
ban@UoVb:~$ echo $PATH
/home/ban/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
vSRX
Ansibleはport830でアクセスするのでアクセス許可をしておく
あと、netconfも許可しておく
さらに今回は ge-0/0/0 がマネージメントポートとしているのでインバウンドの許可もしておく
set system services ssh root-login allow
set system services netconf ssh port 830
set security zones security-zone UNTRUST1 interfaces ge-0/0/0.0 host-inbound-traffic system-services ssh
set security zones security-zone UNTRUST1 interfaces ge-0/0/0.0 host-inbound-traffic system-services netconf
set system login user ban class super-user
set system login user ban authentication plain-text-password
New password:**** #実際はパスワードベタ打ち
Retype new password:**** #実際はパスワードベタ打ち
Ansibleアクセスを試してみる
vsrx1向け
xmlが返ってきたら成功している
ban@UoVb:~/ansible$ ssh 10.0.2.110 -l ban -p 830 -s netconf
Password:
<!-- No zombies were killed during the creation of this user interface -->
<!-- user ban, class j-super-user -->
<hello>
<capabilities>
<capability>urn:ietf:params:xml:ns:netconf:base:1.0</capability>
<capability>urn:ietf:params:xml:ns:netconf:capability:candidate:1.0</capability>
<capability>urn:ietf:params:xml:ns:netconf:capability:confirmed-commit:1.0</capability>
<capability>urn:ietf:params:xml:ns:netconf:capability:validate:1.0</capability>
<capability>urn:ietf:params:xml:ns:netconf:capability:url:1.0?protocol=http,ftp,file</capability>
<capability>http://xml.juniper.net/netconf/junos/1.0</capability>
<capability>http://xml.juniper.net/dmi/system/1.0</capability>
</capabilities>
<session-id>1249</session-id>
</hello>
]]>]]>
^Cban@UoVb:~/ansible$
vsrx2向け
ban@UoVb:~/ansible$ ssh 10.0.3.110 -l ban -p 830 -s netconf
Password:
<!-- No zombies were killed during the creation of this user interface -->
<!-- user ban, class j-super-user -->
<hello>
<capabilities>
<capability>urn:ietf:params:xml:ns:netconf:base:1.0</capability>
<capability>urn:ietf:params:xml:ns:netconf:capability:candidate:1.0</capability>
<capability>urn:ietf:params:xml:ns:netconf:capability:confirmed-commit:1.0</capability>
<capability>urn:ietf:params:xml:ns:netconf:capability:validate:1.0</capability>
<capability>urn:ietf:params:xml:ns:netconf:capability:url:1.0?protocol=http,ftp,file</capability>
<capability>http://xml.juniper.net/netconf/junos/1.0</capability>
<capability>http://xml.juniper.net/dmi/system/1.0</capability>
</capabilities>
<session-id>1249</session-id>
</hello>
]]>]]>
^Cban@UoVb:~/ansible$
Discussion