2015年10月29日木曜日

仮想環境構築勉強

VirtualBox上で手間をかけないで構築する方法についての学ぶ。
まず、以下のプログラムを導入することが良い方法かと思う


●次に各種プログラムについての概要を記述する


1)Vagrant
簡単に言うと、CUI上でのコマンド操作のみで
virtualbox上にOS(初期状態)を構築してくれるもの。


利点>
コマンド実行後、放ったらかしで構築を済んでしまうこと。


欠点>
構築時に使うイメージ(インストーラ)がwebサイトから取得して
実行していくので、使用するイメージによって
悪意のあるプログラム等が含まれている恐れあり


2)Chef
初期構築後のOSに、設定情報や追加でのアプリの導入、サービスの可否等が
作成したプログラムを実行することで一気に済んでしまうこと。


利点>
一気に設定等をしてくれること


欠点>
chef自体の使用等が変わる可能性がある。
rubyについて、多少知る必要がある。



<環境について>
1.iMac2009 cpu:i7 2.8GHz/mem:16GB
2.OS 10.9.1
3.VirtualBox


3)Chef ServerとChef Solo・Knife Soloの違いについて


インストール方法について(Vagrant編)


1.以下のページよりvagrantのインストーラを落とす
http://www.vagrantup.com


2.今回、ubuntuのインストールを実施するにあたって
以下のページから取得したいイメージのURLが記載されているので
コピーを行う
http://www.vagrantbox.es


3.vagrant box add (任意のイメージ名)の後に先ほどコピーしたURLをペーストして実行する
   
vagrant box add ubuntu12.04 http://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-amd64-vagrant-disk1.box


4.次に、インストールしたイメージの初期を行う


①vagrantを起動させる
vagrant up


②任意のフォルダを作成
mkdir vagrant


③作成したフォルダに移動
cd vagrant


④上記で導入したOSの初期化を行う
vagrant init ubuntu12.04


<設定後にPCの再立ち上げなどを行った場合>


1. /vagrant 配下に移動を行う
2. vagrant up を実施
3. vagrant ssh を実施


以上。



Chefについて
Chefを使用する上で、必要な用語等


1)Cookbook


2)Recipe


3)Knife
Chefを実行する時に使うコマンドのこと。


Chef導入後の設定について


今回、chefサーバ無しの状態(solo)で実施の方を行っていく


①Chef インストール後にknifeコマンドの設定実施
knife configure を実施(いろいろ聞かれるがデフォルトの状態で進める)


[導入作業]
●vagrant


1)作業フォルダの作成を行う
mkdir vag_ubuntu


2)上記の作業フォルダに先ほど、Ubuntuのイメージが記載されたURLを
vagrant box add “URL”を入力後に実行する。




3)vagrantを起動させる
vagrant up


4)先ほど導入したubuntuの初期化を行う。
vagrant init ubuntu12.04

5)導入したvagrantのロールバックを行えるようにするため
vagrantのプラグインを導入する。


vagrant plugin install sahara
vagrant plugin install vagrant-vbox-snapshot


6)ホスト名を設定する
vagrant config.vm.hostname ubuntu_hide


●Chef(Client/solo)
1)10.9.1では、現状の導入方法が無理なため以下のURLから”install.sh”をダウンロードする
https://www.opscode.com/chef/install.sh


2)ダウンロードしたinstall.sh の119行目に以下を追記する
"10.9") platform_version="10.7" ;;


3)ダウンロードしてきた”install.sh”に対してファイルの権限の変更を行う
chmod a+x install.sh


4)以下のコマンドを実行することによりChefのインストールが開始される
sudo ./install.sh


5)導入後に以下のコマンドにてバージョンの確認を行う
chef-client --version
chef-solo -v
knife -v


6)knife-soloの導入を行う
sudo gem install knife-solo
上記を実行したがエラー出て先に進まず。


iptablesの導入と設定

1)firewallの停止を行う
systemctl stop firewalld
systemctl disable firewalld


2)iptableのインストールを行う
yum -y install iptables-services


3)iptablesのサービスの起動を行う
# systemctl start iptables
# systemctl enable iptables


4)以下のiptablesを編集する。(作成途中の段階)

vi /etc/sysconfig/iptables
-------/etc/sysconfig/iptables ---------------------------------------------------------------------------------------
*filter
:INPUT ACCEPT [0:0]                                                          # This is [0:0] Packet byte counter
:FORWARD ACCEPT [0:0]                                                 # This is [0:0] Packet byte counter
:OUTPUT ACCEPT [0:0]                                                     # This is [0:0] Packet byte counter
:to_db1 - [0:0]                                                                      # This is [0:0] Packet byte counter
:to_db2 - [0:0]                                                                     # This is [0:0] Packet byte counter
:to_db3 - [0:0]                                                                     # This is [0:0] Packet byte counter

#-s ソースホスト
#-d ディスティネーションホスト
#-p プロトコル
#-j 条件に合った際のアクションを指定
#-i パケット入力のインターフェースを指定
# ACCEPT(許可)
# REJECT(パケットを拒否し、ICMPメッセージを返信)

## INPUT:外部からサーバに対するパケットを扱うチェイン
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 192.168.11.0/255.255.255.0 -i team1 -j ACCEPT
-A INPUT -s 192.168.1.0/255.255.255.224 -i team0 -j ACCEPT                            
-A INPUT -s 192.168.0.0/255.255.0.0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 172.16.0.0/255.240.0.0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 10.0.0.0/255.0.0.0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 127.0.0.1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

##Forward: パケットを別のホストに転送するためのチェイン
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A FORWARD -s 192.168.11.0/255.255.255.0 -d 192.168.1.10 -i team1 -j ACCEPT
-A FORWARD -s 192.168.11.0/255.255.255.0 -i team1 -j ACCEPT
-A FORWARD -d 192.168.1.121 -j to_db1
-A FORWARD -d 192.168.1.122 -j to_db2
-A FORWARD -d 192.168.1.123 -j to_db3
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
--------------------------------------------------------------------------------------------------------------------------

5)サービスの再起動を行う
# systemctl restart iptables


Metallb

参照先: https://metallb.universe.tf/installation/ 導入方法は、ArgoCD経由でHelmを使った方法にする。(以下、導入イメージ)   以前に記載したconfigをデプロイすると、IPの割り当てが出来ていなく 調べていたら、L2Adve...