OpenvSwithc 環境下で bonding を設定する
1
|
|
※ 作成時に bond0 が存在しているとエラーになる
1 2 3 4 5 6 7 8 9 10 |
|
eth0 を固定で slave, eth1 を backup slave みたく固定で設定する方法がよくわからない…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
1 2 |
|
1
|
|
1 2 3 4 5 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
[root@kvm2 ~]# ovs-vsctl add-bond br2 bond2 eth2 eth5 ovs-vsctl: cannot create an interface named eth2 because a port named eth2 already exists on bridge br2
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 |
|
1 2 3 4 5 6 7 |
|
普通の ovs 設定と同じ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
layout: post title: “openvnet のインストール” date: 2015-02-20 12:11:16 +0900 comments: true category: openvnet tags: [network] keywords: openvnet published: true
openvnet のインストールと簡単なオペレーションのメモ
1 2 3 4 5 |
|
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 7 8 |
|
vnmgr/vna/webapi が同一 Host に同居する場合は ZeroMQ の port は被らないように設定が必要
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
/opt/axsh/openvnet/vnet/README.md を参照して作業
1 2 3 4 5 6 7 |
|
下記のくだりの作業は不要(みたい)
1 2 3 4 |
|
1
|
|
1
|
|
1 2 3 |
|
1 2 |
|
1 2 |
|
1 2 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 |
|
db.sh の下記記述をコメントアウト
1 2 |
|
ip_node1 を opvbr0 に割り当てている IP に設定
ip_node1=‘10.1.0.1’
nw-public の一部を下記のように編集
–data-urlencode ipv4_network=10.1.0.0 \
1
|
|
1
|
|
1
|
|
datapath の設定
network の設定
interfaces の設定
datapath と network の連携
network_service 設定 ( 任意 )
メッセージキューに ZeroMQ を使っている Wakame-vdc だと RabbitMQ 使ってる
vnet-vna は Controller という名前のプロセスで動作している
/var/log/redis/redis.log に下記のログが吐かれる
1
|
|
1 2 |
|
/etc/openvnet/vnmgr.conf の plugins [:vdc_vnet_plugin]
は wakame-vdc との連携をさせる際に必要
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1 2 3 |
|
1
|
|
1
|
|
kernel module の bridge をロードしてほしくないので、/etc/modprobe.d/blacklist.conf に記述
1
|
|
1
|
|
1 2 3 4 5 6 7 8 |
|
1 2 3 4 5 6 7 8 |
|
1
|
|
1
|
|
1 2 |
|
yum install http://rdo.fedorapeople.org/rdo-release.rpm
↑これはダメ。レポジトリ先が存在していない…
yum erase rdo-release で削除
1
|
|
selinux Permissive
1
|
|
1
|
|
/etc/sysconfig/network に NETWORKING_IPV6=no を追加
1
|
|
/etc/ssh/sshd_config Port 2442
1 2 |
|
/etc/rc.local に設定追加
1 2 3 |
|
1 2 3 |
|
OS イメージ圧縮前のファイルサイズを控えておく
1
|
|
/var/lib/libvirt/images
圧縮の実行
1
|
|
OS イメージ圧縮後のファイルサイズを控えておく
1
|
|
OS イメージの md5 checksum 値を控えておく
1
|
|
vdc-manage コマンドを実行
1
|
|
事前に控えていた下記の情報を基にカスタムイメージを DB に登録
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
例: 内部 IP アドレスレンジ ( 10.1.0.0/24 ) から外部への通信を NAT する
1 2 |
|
1 2 3 4 5 6 |
|
1
|
|
1
|
|
1
|
|
/etc/sysconfig/iptables に保存される
1
|
|
/etc/sysctl.conf に下記の記述を追加
1
|
|
KVM 操作の際の Tips
1
|
|
1
|
|
1
|
|
1
|
|
※ 停止中のドメインのみ実行可能
1
|
|
1
|
|
1
|
|
1
|
|
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
|
1
|
|
下記の行を編集
1
|
|
下記の行を削除
1
|
|
VM が起動している状態で実行可能
1
|
|
virsh attach-interface
コマンドではエラーになるため、VM が停止した状態で設定ファイルに下記のような記述を追加
1 2 3 4 |
|
virsh edit
コマンド実行後、自動的に下記のような設定になっている
1 2 3 4 5 6 7 8 |
|
mac address
, parameters
, address
は自動的に設定してくれる
以下は virsh attach-interface
コマンド実行時のエラーメッセージ
1 2 3 |
|
VM が Down している状態で実行する
1 2 |
|
virsh edit コマンドを利用して設定を追記
1
|
|
1 2 3 4 5 |
|
VM が Down している状態で実行
1
|
|
1 2 3 |
|
既存の VM とかぶらない VNC の Port 番号に変更
1
|
|
1 2 3 |
|
1
|
|
ここから VNC 経由で接続して作業
1
|
|
1 2 3 4 5 6 7 |
|
1
|
|
手動で IP アドレスを付与
1
|
|
1
|
|
wakame-vdc ( OpenVZ 版 HVA ) をインストールする際の手順をまとめてみる
wakame-vdc インストールするために必要なレポジトリの登録
1 2 |
|
1
|
|
1
|
|
1
|
|
1
|
|
1 2 |
|
OpenVZ 版 HVA をインストールするために必要なレポジトリの登録
1
|
|
1
|
|
1
|
|
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 |
|
設定後、ネットワークの再起動
1
|
|
HVA を一意に識別するために、NODE_ID の設定をする
1
|
|
※ Default だとコメントアウトされている
1 2 3 4 5 6 7 8 9 |
|
1
|
|
nw-demo1
という Network レンジを作成する
1 2 3 4 5 6 7 8 |
|
nw-demo1
の DHCP で割り当てる IP アドレスのレンジを設定
1
|
|
nw-demo1
の DHCP で割り当てる IP アドレスのレンジ内の割り当て除外 IP の登録
1
|
|
1
|
|
public
という名称の dc_network を作成し、nw-demo1
と紐付ける
1 2 3 |
|
1 2 3 4 5 |
|
OpenVZ 用カスタムカーネルが動作するように OS を再起動する
1
|
|
1 2 3 4 5 6 7 |
|
1
|
|
1 2 |
|
1
|
|
1
|
|
下記のユーザ名/パスワードのユーザを登録
1
|
|
1
|
|
# mkdir -p /var/lib/wakame-vdc/images
# cd /var/lib/wakame-vdc/images
# curl -O http://dlc.wakame.axsh.jp.s3.amazonaws.com/demo/vmimage/ubuntu-lucid-kvm-md-32.raw.gz
# md5sum ubuntu-lucid-kvm-md-32.raw.gz
1
|
|
マシンイメージを保存する場所としてローカルのストレージを登録する
1 2 3 4 5 6 |
|
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 |
|
1
|
|
1 2 3 4 |
|
下記の URL にアクセス
下記のユーザ名/パスワードのユーザを登録
KVM VM に OS をインストールする手法のまとめ
1
|
|
VNC経由もしくはテキストモードにてインストールを実施する
VNC 経由で作業を実施するために、virt-viewr
を事前にインストールしておく
1
|
|
下記のコマンドを実行し、インストールを実施
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
テキストモードインストールでは、GUIインストールとは異なり、パーティション等の編集メニューが出てこない。 インストール時に指定したい場合には、キックスタートを利用してインストールすればよい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1
|
|
作業途中で失敗する…
1
|
|
1
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1
|
|
1
|
|
Vagrant Box を Atlas by HashiCorp を利用して管理するフローをまとめる。
vagrant box add
コマンドを利用して、ベースとなる Box を作業端末に追加する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
vagrant init
コマンドを利用して、Vagrantfile を作成
1 2 3 4 5 |
|
1 2 3 4 5 6 7 8 9 |
|
作成した Vagranfile の修正
1
|
|
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 |
|
1
|
|
vagrant up
コマンドで起動
vagrant package
コマンドを利用して Box のパッケージを作成
1 2 3 4 5 6 7 |
|
S3 の任意の場所に作成したパッケージファイル ( e.g. centos-6.6.box ) をアップロード。
アップロード後、ファイルの Everyone
へのパーミッションに Open/Download
を付加する。
Atlas 上に登録するために、Link の URL を控えておく
1
|
|
Atlas ログイン直後の Development の Tab から create a box here. をクリックするか、下記の URL にアクセスして新規 Box 追加画面へ移る。
https://atlas.hashicorp.com/boxes/new
1
|
|
1
|
|
1 2 3 4 5 |
|
1
|
|
1 2 3 4 5 6 7 8 |
|
1
|
|
`
1
|
|
Release version
ボタンを押下し、リリースする
vagrant up 時、下記のエラーメッセージを吐いて起動に失敗する場合がある。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
sync folder が正常に mount できずにエラーになる。Vagrant box に Virtualbox Guest Additions がインストールされていなかったり、Vagrant のバージョンとの乖離がありすぎると問題になるみたい。
Vagrant up 時に sync folder を mount しないように Vagrantfile に
config.vm.synced_folder ".", "/vagrant", disabled: true
の記述を追加して回避。
test-kitchen の dirver に ec2 を利用する際や、knife ec2 コマンド、AWS CLI を利用する際に環境変数から設定値を読み込む設定等のまとめ。
git で管理している設定ファイルに直接 AWS の Access Key や Secret Access Key などを記述しなくても済む方法。
knife-ec2 および kitchen-ec2 の環境変数関連の挙動から、.bash_profile
に設定する環境変数。
1 2 3 4 |
|
1 2 3 4 |
|
.kitchen.yml に設定項目を記述しなくても、環境変数に特定の値が設定されている場合には自動的に設定値を設定してくれる項目
設定項目 | 設定のための環境変数 |
---|---|
aws_access_key_id | AWS_ACCESS_KEY or AWS_ACCESS_KEY_ID |
aws_secret_access_key | AWS_SECRET_KEY or AWS_SECRET_ACCESS_KEY |
aws_session_token | AWS_SESSION_TOKEN or AWS_TOKEN |
aws_ssh_key_id | AWS_SSH_KEY_ID |
1 2 3 4 5 6 7 |
|
設定項目 | default 設定値 |
---|---|
knife[:aws_credential_file] | - |
knife[:aws_access_key_id] | - |
knife[:aws_secret_access_key] | - |
knife[:region] | - |
knife[:use_iam_profile] | false |
knife[:flavor] | - |
knife[:image] | - |
knife[:placement_group] | - |
knife[:availability_zone] | - |
knife[:chef_node_name] | - |
knife[:aws_ssh_key_id] | - |
knife[:ssh_port] | 22 |
knife[:ssh_gateway] | - |
knife[:ssh_gateway_identity] | - |
knife[:bootstrap_version] | - |
knife[:bootstrap_proxy] | - |
knife[:distro] | chef-full |
knife[:template_file] | false |
knife[:secret] | - |
knife[:secret_file] | - |
knife[:s3_secret] | - |
knife[:subnet_id] | - |
knife[:private_ip_address] | - |
knife[:bootstrap_protocol] | - |
knife[:fqdn] | - |
knife[:aws_user_data] | - |
knife[:ebs_volume_type] | standard |
knife[:provisioned_iops] | - |
chef-server との連携を前提とした knife ec2 のオペレーションのまとめ
$ knife ec2 server create --node-name chef_test --ssh-user ec2-user --security-group-ids sg-6744b502
chef server への node の追加
1
|
|
$ knife ec2 server delete i-xxxxxxxx --purge
1
|
|
Mac OSX Yosemite (ver. 10.10 ) に boot2docker をインストールした際のメモ
https://github.com/boot2docker/osx-installer/releases/tag/v1.3.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
.bashrc
1 2 3 |
|
1 2 3 4 |
|
1 2 3 4 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
1 2 3 4 5 6 7 8 9 10 |
|
1 2 |
|
1
|
|
$ ssh -i ~/.ssh/id_boot2docker -p 2022 docker@localhost
boot2docker を利用する際には下記のコマンドを実行
1 2 3 4 5 6 7 8 9 |
|
1
|
|
もしくは
1
|
|
SSH のポートフォワードを利用して接続
1 2 3 |
|
1
|
|
boot2docker に ssh でログインしてから実行
1
|
|
1 2 |
|
Dockerfile
1 2 3 4 5 6 7 8 9 |
|
Docker のバージョンアップを追っかける
バージョン | リリース日 | URL |
---|---|---|
1.4.1 | 2014/12/17 | http://bit.ly/1GRTIae |
1.4.0 | 2014/12/11 | http://bit.ly/1wn3igI |
1.3.3 | 2014/12/11 | http://bit.ly/1wn3igI |
1.3.2 | 2014/11/24 | http://bit.ly/1vIYXke |
1.3.1 | 2014/11/05 | http://bit.ly/11dAEUE |
1.3.0 | 2014/10/16 | http://bit.ly/1vnovr9 |
1.2.0 | 2014/08/22 | http://bit.ly/1z4tQ9B |
1.1.0 | 2014/07/03 | http://bit.ly/U5ar6k |
1.0.0 | 2014/06/09 | http://bit.ly/1wleJYt |
0.11.0 | 2014/05/07 | http://bit.ly/1woNMRd |
0.10.0 | 2014/04/08 | http://bit.ly/1ts2FC4 |
0.9.0 | 2014/03/10 | http://bit.ly/1pIceIe |
0.8.0 | 2014/02/04 | http://bit.ly/1tjF1sI |
0.7.0 | 2013/11/26 | http://bit.ly/1uQ8B4A |
0.6.0 | 2013/08/23 | http://bit.ly/1zoRsXy |
0.5.0 | 2013/07/18 | http://bit.ly/10rC7Gs |
0.4.0 | 2013/06/03 | http://bit.ly/1ts30F0 |
0.3.0 | 2013/05/06 | http://bit.ly/1D7dcnw |
0.2.0 | 2013/04/25 | http://bit.ly/1wlfdO5 |
0.1.0 | 2013/03/20 | http://bit.ly/1vZeQYd |
Packer を利用して VirtualBox で利用可能な Windows7 のイメージを作成する
下記の Packer Download URL から Packer 本体を Download し解凍後、Directory を ~/ 以下に packer に名前を変更して設置
本家から Fork した Packer 実行ファイルを git clone
1
|
|
利用する Windows iso イメージの md5 の値を取得し、必要に応じて windows_7.json を修正
1 2 |
|
1 2 3 4 5 |
|
clone した packer-windows Directory 内の iso Directory に Windows の iso イメージを設置
1 2 3 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
packer コマンド実行中、windows_7.json に記載がある下記の script が実行される
1 2 3 4 5 6 7 8 9 |
|
answer_files/7/Autounattend.xml の修正
1
|
|
1
|
|
answer_files/7/Autounattend.xml の修正
1
|
|
1
|
|
ComputerName は 15 文字以内
で指定する
Packer 実行ファイルのデバック時などは VirtualBox の Window が表示される方が便利。Default では Headless なので、必要に応じて変更する。
windows_7.json の修正
1
|
|
true の場合、Headless になり、packer 実行中の VirtualBox の Window が表示されない
1
|
|
answer_files/7/Autounattend.xml の修正
en-US の箇所を ja-JP に変更
1 2 3 4 5 6 |
|
1 2 3 4 5 6 |
|
Packer 実行中、Windows Update を実施しないようにする
answer_files/7/Autounattend.xml の修正
1 2 3 4 5 6 7 8 |
|
1 2 3 4 5 6 7 8 |
|
1
|
|
ComputerName が文字数制限の 15 文字
を超えている文字列を指定していた。
1 2 3 |
|
1 2 3 4 |
|
仮想メディアマネージャの光学ディスクのところに VBoxWindowsAdditions が入っていないとダメかも。適当な Windows OS に VBoxWindowsAdditions を Mount して、再度 packer コマンドを実行したらとりあえず解決できた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
packer-windows 実行ファイルの ver 1.23 で修正済み。 1.22 以前のバージョンでは修正の必要あり
windows_7.json の下記を修正
1 2 3 4 5 |
|
1 2 3 4 5 |
|
1 2 3 4 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
1 2 3 4 5 6 7 8 9 |
|
chef-solo とか knife-solo とか似たような chef 用語が色々とあるので、整理をかねて簡単にまとめてみる
chef-solo とは?
knife-solo とは?
chef-client とは?
chef-client ローカルモードとは?
Windows 関連の Cookbook を作成する際の命名規則のまとめ
Wondows にアプリケーションをインストールする Cookbook を作成する際の命名規則
命名規則:
アプリケーション名-windows
例:
apache2-windows
Windows OS の設定を変更する Cookbook を作成する際の命名規則
命名規則:
windows_設定
例:
windows_firewall
Wondows にアプリケーションをインストールする recipe を作成する際の命名規則
命名規則:
default.rb
命名規則:
update.rb
Vagrant の Provisioner に Chef Client を利用し、Chef Server に Hosted Chef を利用する
1 2 3 4 5 6 7 8 9 |
|
chef_server_url
validation_client_name
Validation Client
として利用する Client 名を指定する
chef-validator
ではダメchef を使い始めてから chef-repo がだいぶ汚れて(?)きたので整理してみる
1 2 3 4 5 |
|
organization の starter-kit を Download
psg-validator.pem と r-ogata.pem を .chef にコピー
knife.rb
1 2 3 4 5 6 7 8 9 |
|
config.json
1 2 3 4 5 6 7 8 9 10 11 12 |
|
https://manage.opscode.com/login
https://manage.opscode.com/starter-kit
Vagrant の Provisioner に Chef Client を利用する際に遭遇したトラブルとその解決策
Hosted Chef を Chef Server として利用し、下記の設定がされている状態で、vagrant destory を実行すると VM は削除されるが、Hosted Chef 上の Nodes/Clients から情報が削除されない。
1 2 3 4 5 6 7 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
未解決
下記の設定がされている状態で、vagrant destory を実行すると VM は削除されるが、chef server 上の Nodes/Clients から情報が削除されない。
1 2 |
|
chef is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
のエラーを吐いて処理が終了してしまう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
Vagrant の Version を 1.6.5 に上げる
Vagrant 1.6.3 だとエラーが出るが、 1.6.5 だとエラーが出ず、Chef Server 上から Nodes/Clients から情報が削除される。
下記の設定がされている状態で、vagrant destory を実行すると VM は削除されるが、chef server 上の Nodes/Clients から情報が削除されない。
1
|
|
uninitialized constant Berkshelf::BerkshelfError (NameError)
のエラーを吐いて処理が終了してしまう。
1 2 3 4 5 6 7 8 9 |
|
Chef Server 上のどの Node を削除するのか指定できないので、エラーで止まるみたい。
Vagrantfile に下記の記述を追加して対応
1
|
|