👻

Ansibleを試してみた(セットアップ編)

2024/12/31に公開

構成

こんな感じ

環境

  • 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