0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ansible検証のための簡単なVM環境の作り方 with Virtual Box

Last updated at Posted at 2019-02-11

この記事の目的

メイン:Virtual Boxで仮想環境を構築して、Ansibleを検証できるようにする
サブ:環境の作り方を忘れないようにする

#1.背景
仕事でAnsibleを使い始めたが、動作検証を今すぐしたい!!!
検証しないと夜しか眠れない!!
でも環境はオフィスにしかない………

なければ作ればよいのでは?:thinking:

#2.環境
ハードウェア
CPU : i7 3770 (インテル® バーチャライゼーション・テクノロジー (VT-x) 対応CPU)
メモリ : 16GB

ソフトウェア
Windows 10 professional
Virtual Box 5.2.26 r128414 (Qt5.6.2)

#3.準備
##3.1 Virtual Boxのインストール
自分のPCの環境に合わせたVirtual Boxをダウンロードしてインストール!

##3.2 仮想化支援機能の有効化
Intel VT-xを有効にしましょう!
やり方はgoogle先生に聞いてみよう!
VirtualCheckerでVT-xが有効かどうかを調べることができるので活用すべし

##3.3 CentOSのOsイメージのダウンロード
CentOSのホームページからOSイメージをダウンロードしましょう。
個人的にGUIは煩わしいのでMinimal ISOをダウンロード!

#4.VMを作成
##4.1 環境のイメージ
サーバイメージ.png
ansible用のサーバとansible検証用のテストサーバを作成します。

両サーバは仮想NICとしてNATホストオンリーアダプタを持ちます。
NATはyumのために使用します。
ホストオンリーアダプタはホストPCからのTeraTermと、VM間のansible用ネットワークのために使用します。

##4.2 ホストオンリーアダプタのためのネットワークの作成
あらかじめネットワークを作っておきましょう
File->Host Network Manager
ホストオンリー.png

Create!
create.png
作成したAdapterを選択してPropertiesボタンを選択!
お好みのIPアドレスとNWを設定しましょう。
今回は 192.168.111.1/255.255.255.0 を設定。そしてApply!!
作成.png

##4.3 VMの設定
お待たせしました。ついにVMです。
NewボタンでVMを作っていきますぞ
newボタン.png

設定は以下の通り。CentOSはRedHatのファミリーなのでRedhatでいいでしょ(違ったらごめんなさい)

設定 設定値 説明
Name AnsibleServer_CentOS7 VMの名前
Type Linux  CentOSなのでLinux
Version Red Hat(64-bit) OSのタイプ
Memory size 2048GB メモリサイズ(自分のPCのスペックと要相談) 
Hard disk Create a virtual hard disk now Virtual Diskを新規作成する 
一応キャプチャも掲載
new設定.png

自分のPCのスペックと相談して設定しようね!
☆最小構成インストールの場合、Ansibleをインストールしても1.3GB程度しか使用しません。

設定 設定値 説明
File location F:\VM\AnsibleServer_CentOS7\AnsibleServer_CentOS7.vdi Virtual diskの場所。空き容量と相談だ!
File size 10GB Minimal ISOなら十分
Hard disk file type VDI VirtualBoxのファイルタイプを使用
Storage on physical hard disk Dynamically allocated 使用した分だけ容量を使用する
virsuldisk.png

これでVMの枠ができました!!!!!
VMできた.png

次はNICの割り当て。作成したホストオンリーアダプタをVMに設定!
VMを選択してSetting->Network->Adapter2
setting.png
設定値はこう!

設定 設定値 説明
Enable Network Adapter ✔(チェックつける) NICの有効化
Attached to Hots-only Adapter  4.2で作ったのはホストオンリーアダプター
Name VirtualBox Host-Only Ethernet Adapter #4 4.2で作ったホストオンリーアダプターを割り当てる!

OSインストールのために、OSのisoを仮想ドライブに割り当て!
Setting->Storage->Controller: IDE->Empty->Optical Drive->💿
iso割り当て.png
3.3でダウンロードしたisoファイルを指定しよう!!

##4.4 OSインストール
遂にきました、OSインストールです。
VMを起動させましょう。
VMを選択してダブルクリックか、starrt.pngを押す!

「Install CentOS 7」を選択してインストール開始!
installCentOS.png

ちなみに、右のCtrlボタンでVMから離れることができます。

設定していきます。
インストール時に使用する言語はお好みで。

インストールの概要が出たら「インストール先(D)」を選択。設定しないとインストールが始まりません。
インストール先.png

4.3で作成した仮想ディスクしかないはずなので、選択して完了!
ディスク選択.png

さぁさぁインストール開始です!
開始!.png

インストール中にパスワードをroot設定しておきます。
パスワードはお好みで。
パスワード.png

後はインストール完了まで待つ!!!!!
(いっぱいリソースを割り当てたら早く終わるゾイ)
終わったら再起動再起動.png

インストール完了です。
rootユーザで、インストール中に設定したパスワードを使ってログインできることを確認しましょう。
完了です.png

#5.ネットワークの設定
Virtual Boxのコンソールでもよいのですが、個人的にTera Termの方が使いやすいのでTera Termで接続できるようにします。

5.1 ホストオンリーアダプターのMACアドレスの確認

各仮想NICのACアドレスはVMの設定から見れます。
Setting->Network->Adapter 2>Advanced->MAC Address:
MACアドレス.png
ホストオンリーアダプターはキャプチャの通りですね。

5.2 IPアドレスの設定

VM上でホストオンリーアダプターの仮想NICがどのIFに割り当てられているか確認しましょう。
# ip addr
今回はenp0s8に割り当てられているようです。
ip addr.png

4.2にて「192.168.111.1/255.255.255.0」を設定していたので、enp0s8には「192.168.111.10」を設定しましょう。
設定のやり方はもちろんnmcuiコマンドです。

# nmcli connection modify enp0s8 ipv4.method manual ipv4.addresses "192.168.111.10/24"

設定したらインターフェースをUPしましょう。

# nmcli connection up enp0s8

成功したら以下のように、DEVICEにCONNECTIONが追加されて、緑色になります。
ip addrコマンドでIPアドレスも確認しましょう。

[root@localhost ~]# nmcli d
DEVICE  TYPE      STATE     CONNECTION
enp0s8  ethernet  ????  enp0s8
enp0s3  ethernet  ????  --
lo      loopback  ????  --
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:da:ce:78 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:8a:60:d3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.111.10/24 brd 192.168.111.255 scope global noprefixroute enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::c544:e75f:b0ab:d6e1/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

設定完了.png

5.3 Tera Termでアクセス

これでアクセスできますぞ!
Tera Termからログイン!!!!
ログインteraterm.png

作業がやりやすくなりましたね!(個人的感想)

5.4 外部NWとの接続

yumでansibleをインストールできるように外部ネットワークに接続できるようにしましょう。
enp0s3のインタフェースがNATの仮想NICなので、リンクアップさせましょう。
リンクアップのコマンドはenp0s8と同じです。

[root@localhost ~]# nmcli d
DEVICE  TYPE      STATE     CONNECTION
enp0s8  ethernet  connected     enp0s8
enp0s3  ethernet  disconnected  --
lo      loopback  unmanaged     --
[root@localhost ~]# nmcli c up enp0s3
?????????????????? (D-Bus ???????: /org/freedesktop/NetworkManager/ActiveConnection/2)
[root@localhost ~]# nmcli d
DEVICE  TYPE      STATE     CONNECTION
enp0s3  ethernet  connected    enp0s3
enp0s8  ethernet  connected    enp0s8
lo      loopback  unmanaged    --

何も設定していませんが、外部NWにpingが通るか確認してみましょう。(結果は一部マスクしています。)

[root@localhost ~]# ping -c 3 google.com
PING google.com (XXX.XXX.XXX.XXX) 56(84) bytes of data.
64 bytes from XXXXXXXXXX.XXXXX.net (XXX.XXX.XXX.XXX): icmp_seq=1 ttl=54 time=6.13 ms
64 bytes from XXXXXXXXXX.XXXXX.net (XXX.XXX.XXX.XXX): icmp_seq=2 ttl=54 time=9.35 ms
64 bytes from XXXXXXXXXX.XXXXX.net (XXX.XXX.XXX.XXX): icmp_seq=3 ttl=54 time=6.10 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 6.103/7.195/9.352/1.526 ms

通りましたね。設定しなくてもつながります。
(補足:外部と繋がるご自宅のNW内で固定IPアドレスを使用したりしていると繋がらない可能性があります)

#6. Ansibleのインストール
yumさんがすべて解決してくれます。
yumは神。

最新のAnsibleをインストールするには、EPEL(Extra Package for Enterprise Linux)レポジトリが必要なようです。1
そのため、epel-releaseをインストールしてからAnsibleをインストール!
**Is this ok [y/d/N]:**はすべて「y」で継続

# yum install epel-release
# yum install ansible --enablerepo=epel-testing
(省略)
 ansible                              noarch  2.7.7-1.el7        epel      11 M
(省略)

2019年2月11日時点では、2.7.7-1.el7がインストールされるようです。

インストールされているか確認

[root@localhost ~]# rpm -qa | grep ansible
ansible-2.7.7-1.el7.noarch

ansibleがインストールできました!
完璧では!?

#7. テストサーバの作成
Ansibleの検証はローカルでやってもよいのですが、せっかくならVMももう一つ作りたいところ。
作ったAnsibleサーバをコピーしてテストサーバにしましょう。

7.1 VMコピー

Ansilbeサーバをシャットダウンして、VirtualBoxManagerでVMを右クリックからのcloneを実行!
クローン.png

VM名はお好みで。
名前はなんdめお.png
ディスクには余裕があるので「すべてをクローン」にしてしまいましょう。
フルクローン.png
###注意点
このやり方だとVirtualBoxデフォルトのフォルダにVMが作られてしまうので、ディスク容量がない場合はVMを移動させましょう。
移動方法は、VirtualBoxの仮想マシンフォルダ変更手順メモの「面倒くさいので手抜きすると」を参考に移動しましょう

7.2 VM起動

VMがコピーできました。
VMコピー結果.png

VMの起動方法は4.3と同じ。
ホストオンリーアダプタはAnsibleサーバと同じものが割り当てられているので、5.1と5.2を参考にIPアドレスを設定しましょう。
今回は192.168.111.11を設定

# nmcli connection modify enp0s8 ipv4.method manual ipv4.addresses "192.168.111.11/24"

Ansibleサーバは一度シャットダウンしたので起動させ、両VMのenp0s8のインタフェースをアップさせましょう。

# nmcli c up enp0s8

これで、両者ともに通信ができるようになりました。
pingで確認しましょう

# ping -c 3 192.168.111.10
# ping -c 3 192.168.111.11

pingが通れば環境構築は完了です。

##8. 残りの設定
環境はできましたが、いくつか設定したほうがよい設定が残っています。
ここでは何を設定したら良いか記載しますので、ご自身でやり方を調べてください。
(設定を失敗してもVMだからOSをぶっ壊しても問題なし!)

  1. ホスト名の設定 → どっちがテスト用サーバかわかるようにするため
  2. ホストオンリーアダプタのインタフェース(この記事ではenp0s8)のONBOOTをyesに設定 → シャットダウンするたびにリンクを上げなおさなくて良いようにするため
  3. テストサーバのCPU/メモリ量のリソース調整 → 検証用のサーバはリソースを減らしてホストPCのリソースを増やしておきましょう

#9. まとめ
Ansibleを検証できる環境ができたので、あとはAnsibleの使い方を調べてAnsibleを使ってみましょう:thumbsup::thumbsup::thumbsup::thumbsup::thumbsup:

  1. Ansibleのインストールとサンプルコードの実行を参考にさせて頂きました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?