eveで仮想NW環境を構築する-Linux編

eve上にはLinuxwindowsにも対応しておりツール開発も可能。
Devops活動の一環として誰でも手軽にAnsibleのテストができる環境を作ることにした。

AnsibleはNWの構築・運用を効率化するツールであり、 構築、運用担当で使いたい機能をymlで簡単に実装できるのがメリット。
しかし、試すためのNW環境が無いなど導入にハードルがあった。

結局、検証機を持っている開発検証側で本当に役立つかどうか微妙なymlを作り、 押し付ける感じになってしまいそうな気がしていた。

この仮想環境で試すことでお互いに役立つイメージを共有しながら導入につなげていけるんじゃないかなと、期待。

今回は、Nexus9k構成labですでにPCリソースギリギリまで使っているのでlabを別で作成した。

f:id:pinn38:20200211172037p:plain
Linuxサーバから各NW機器にAnsibleで設定をするlab

事前に必要なもの
  1. 仮想版Linux(無償)
  2. VMwareWorkstation15player(無償)
  3. eve(無償)

※2~3はeveで仮想NW環境を構築する-Nexus9K編 - 38pinn’s blog参照
※基本、OSSなど無償のツールを使うポリシーです。



仮想版Linuxのダウンロード

CentOSのダウンロードはMEGAで可能
linux-centOS-8.tar.gzをDLし解凍
※(参考)Ubuntu、kaliLinuxなど他も多数あり。



Linuxの配置


■ CentOS8 仮想版
eveにCLIでログインし、以下パスにフォルダを作成
/opt/unetlab/addons/qemu/linux-centos-8
ダウンロードしたファイルを解凍し以下の階層にあるhda.qcow2をSCPで転送する
linux-CentOS-8>virtioa.qcow2

設定を反映する

eveのコマンドラインで以下の1行を実行する。 ※実施しないとOSを認識しないので注意

/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

ブラウザでeveにログインする

f:id:pinn38:20200118114352p:plain
ブラウザに★IPアドレス指定してログインする。(デフォルトはadmin/eve)


NW構成にCentOS8を追加する

ここでノード追加するときにOSファイルが選択可能であればOSの登録は正常に実施できている。選択できない場合は手順を再確認すること。

f:id:pinn38:20200211162545p:plain
Linuxを選択


f:id:pinn38:20200211161232p:plain
centos8を選択


仮想CentOS8を起動する

Linuxアイコンを右クリック⇒StartでVNCが起動し自動的にインストールが始まる。

f:id:pinn38:20200211161722p:plain
インストールが終わって起動したところ


初期PWは
user/Test123
root/Test123

CentOS8をInternetに接続

CentOS8はインターネットに接続する側と仮想NW機器を管理する側の2つのNICを持つように設定する。

f:id:pinn38:20200211163645p:plain
VMwareWorkstationの設定でネットワークアダプタを2つ作成しどちらもブリッジにする

VMwareのホストになるPCがインターネットに接続可能なこと。
eveの画面上で右クリックしAdd new objectでNetworkを選択。
Management(Cloud0)を選択
いったんCentOS8をStopし右クリックでNIC数を2に設定。Cloud0とコネクトして再度Startする。
f:id:pinn38:20200211164631p:plain
VMwareのホストとブリッジでインターネットに接続できた


CentOS8にAnsibleをインストールする

CentOS8のアドレスにteraterm等でCLIログインする。

※CentOS7ではデフォルトでPython2で変更が必要だったので今回はCentOS8を初インストールしてみた。

CentOS8へ普通にAnsibleをインストールする場合は以下リンクでやってみました。

38pinn.hateblo.jp


CentOS8にvenv環境でansibleを使う場合は (以下参考ページ) Ansible、CentOS8でググると出ました。いつも本当にお世話になっているページです(*- -)ペコリ。

[Ansible] CentOS 8 に Ansible をインストールする(Python 3 + venv + pip) - てくなべ (tekunabe)

sudo dnf install python3 -y
python3 -m venv ansible-py3
source ansible-py3/bin/activate
pip3 install ansible 

インストールログ

■Python3確認
[root@localhost ~]# python3
Python 3.6.8 (default, Oct  7 2019, 17:58:22)
[GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

■
[root@localhost ~]# sudo dnf install python3 -y
CentOS-8 - AppStream                                        1.1 MB/s | 6.4 MB     00:05
CentOS-8 - Base                                             989 kB/s | 5.0 MB     00:05
CentOS-8 - Extras                                           464  B/s | 2.1 kB     00:04
Last metadata expiration check: 0:00:01 ago on Tue 11 Feb 2020 01:51:54 AM EST.
Package python36-3.6.8-2.module_el8.0.0+33+0a10c0e1.x86_64 is already installed.
Dependencies resolved.
============================================================================================
 Package       Arch        Version                                     Repository      Size
============================================================================================
Upgrading:
 python36      x86_64      3.6.8-2.module_el8.1.0+245+c39af44f         AppStream       19 k

Transaction Summary
============================================================================================
Upgrade  1 Package

Total download size: 19 k
Downloading Packages:
python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm      17 kB/s |  19 kB     00:01
--------------------------------------------------------------------------------------------
Total                                                       7.0 kB/s |  19 kB     00:02
warning: /var/cache/dnf/AppStream-a520ed22b0a8a736/packages/python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
CentOS-8 - AppStream                                        466 kB/s | 1.6 kB     00:00
Importing GPG key 0x8483C65D:
 Userid     : "CentOS (CentOS Official Signing Key) <security@centos.org>"
 Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                    1/1
  Upgrading        : python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64                1/2
  Running scriptlet: python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64                1/2
  Cleanup          : python36-3.6.8-2.module_el8.0.0+33+0a10c0e1.x86_64                 2/2
  Running scriptlet: python36-3.6.8-2.module_el8.0.0+33+0a10c0e1.x86_64                 2/2
  Verifying        : python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64                1/2
  Verifying        : python36-3.6.8-2.module_el8.0.0+33+0a10c0e1.x86_64                 2/2

Upgraded:
  python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64

Complete!


■venv の準備
[root@localhost ~]# python3 -m venv ansible-py3
[root@localhost ~]# source ansible-py3/bin/activate
(ansible-py3) [root@localhost ~]#

■venv を有効にした状態で、pip で Ansible をインストール
(ansible-py3) [root@localhost ~]# pip3 install ansible
Collecting ansible
  Downloading https://files.pythonhosted.org/packages/d7/d7/5afcb906038cd8a217ac57110055e27000c5cfe05ecafe969aaa119d1652/ansible-2.9.4.tar.gz (14.2MB)
    100% |????????????????????????????????| 14.2MB 40kB/s
Collecting jinja2 (from ansible)
  Downloading https://files.pythonhosted.org/packages/27/24/4f35961e5c669e96f6559760042a55b9bcfcdb82b9bdb3c8753dbe042e35/Jinja2-2.11.1-py2.py3-none-any.whl (126kB)
    100% |????????????????????????????????| 133kB 339kB/s
Collecting PyYAML (from ansible)
  Downloading https://files.pythonhosted.org/packages/3d/d9/ea9816aea31beeadccd03f1f8b625ecf8f645bd66744484d162d84803ce5/PyYAML-5.3.tar.gz (268kB)
    100% |????????????????????????????????| 276kB 536kB/s
Collecting cryptography (from ansible)
  Downloading https://files.pythonhosted.org/packages/45/73/d18a8884de8bffdcda475728008b5b13be7fbef40a2acc81a0d5d524175d/cryptography-2.8-cp34-abi3-manylinux1_x86_64.whl (2.3MB)
    100% |????????????????????????????????| 2.3MB 316kB/s
Collecting MarkupSafe>=0.23 (from jinja2->ansible)
  Downloading https://files.pythonhosted.org/packages/b2/5f/23e0023be6bb885d00ffbefad2942bc51a620328ee910f64abe5a8d18dd1/MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl
Collecting six>=1.4.1 (from cryptography->ansible)
  Downloading https://files.pythonhosted.org/packages/65/eb/1f97cb97bfc2390a276969c6fae16075da282f5058082d4cb10c6c5c1dba/six-1.14.0-py2.py3-none-any.whl
Collecting cffi!=1.11.3,>=1.8 (from cryptography->ansible)
  Downloading https://files.pythonhosted.org/packages/f1/c7/72abda280893609e1ddfff90f8064568bd8bcb2c1770a9d5bb5edb2d1fea/cffi-1.14.0-cp36-cp36m-manylinux1_x86_64.whl (399kB)
    100% |????????????????????????????????| 399kB 138kB/s
Collecting pycparser (from cffi!=1.11.3,>=1.8->cryptography->ansible)
  Downloading https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz (158kB)
    100% |????????????????????????????????| 163kB 705kB/s
Installing collected packages: MarkupSafe, jinja2, PyYAML, six, pycparser, cffi, cryptography, ansible
  Running setup.py install for PyYAML ... done
  Running setup.py install for pycparser ... done
  Running setup.py install for ansible ... done
Successfully installed MarkupSafe-1.1.1 PyYAML-5.3 ansible-2.9.4 cffi-1.14.0 cryptography-2.8 jinja2-2.11.1 pycparser-2.19 six-1.14.0
You are using pip version 9.0.3, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.


■出力メッセージに従ってPIPをUPDATE
(ansible-py3) [root@localhost ~]# pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
    100% |????????????????????????????????| 1.4MB 592kB/s
Installing collected packages: pip
  Found existing installation: pip 9.0.3
    Uninstalling pip-9.0.3:
      Successfully uninstalled pip-9.0.3
Successfully installed pip-20.0.2



■ansible確認
(ansible-py3) [root@localhost ~]# ansible -i localhost, all -m ping -c local
localhost | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": false,
    "ping": "pong"
}
(ansible-py3) [root@localhost ~]#
次回のUP予定

仮想環境のAnsibleを使ってNexus9k用のymlを作成実行してみる