eveで仮想NW環境を構築する-Linux編
eve上にはLinuxやwindowsにも対応しておりツール開発も可能。
Devops活動の一環として誰でも手軽にAnsibleのテストができる環境を作ることにした。
AnsibleはNWの構築・運用を効率化するツールであり、
構築、運用担当で使いたい機能をymlで簡単に実装できるのがメリット。
しかし、試すためのNW環境が無いなど導入にハードルがあった。
結局、検証機を持っている開発検証側で本当に役立つかどうか微妙なymlを作り、 押し付ける感じになってしまいそうな気がしていた。
この仮想環境で試すことでお互いに役立つイメージを共有しながら導入につなげていけるんじゃないかなと、期待。
今回は、Nexus9k構成labですでにPCリソースギリギリまで使っているのでlabを別で作成した。
事前に必要なもの
- 仮想版Linux(無償)
- VMwareWorkstation15player(無償)
- 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にログインする
NW構成にCentOS8を追加する
ここでノード追加するときにOSファイルが選択可能であればOSの登録は正常に実施できている。選択できない場合は手順を再確認すること。
仮想CentOS8を起動する
Linuxアイコンを右クリック⇒StartでVNCが起動し自動的にインストールが始まる。
初期PWは
user/Test123
root/Test123
CentOS8をInternetに接続
CentOS8はインターネットに接続する側と仮想NW機器を管理する側の2つのNICを持つように設定する。
※VMwareのホストになるPCがインターネットに接続可能なこと。
eveの画面上で右クリックしAdd new objectでNetworkを選択。
Management(Cloud0)を選択
いったんCentOS8をStopし右クリックでNIC数を2に設定。Cloud0とコネクトして再度Startする。
CentOS8にAnsibleをインストールする
CentOS8のアドレスにteraterm等でCLIログインする。
※CentOS7ではデフォルトでPython2で変更が必要だったので今回はCentOS8を初インストールしてみた。
CentOS8へ普通にAnsibleをインストールする場合は以下リンクでやってみました。
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を作成実行してみる