Windows Vagrant VirtualBoxでdebian8なbase boxとかつくってみたはなし
やり方は本家のマニュアル見ましょう。
- vagrantのインストール。
インストール後、pathが通ってなければ通しましょう。 - sshのインストール
msys2とかMinGWとかcygwinとかなんでも(pathを通しましょう)
注意)msys2とかcygwinからwindowsのvagrantを使うときは
.bash_profile とかに export VAGRANT_DETECT_OS=cygwin
とやっておかないとttyありませんみたいに言われます。 - VirtualBoxのインストール。
- VirtualBoxへのdebian8インストール
HW設定にて オーディオとUSBサポートを無効
名前をたとえばdebian8に
rootのパスワードは vagrant
ユーザ vagrant パスワード vagrant でユーザを作る - VirtualBox Guest Additionsのインストール
apt-get install gcc
apt-get install linux-source
apt-get install dkms
メニューのデバイスからGuest Additions CDイメージの挿入
mount -r /dev/sr0 /mnt/
/mnt/VBoxLinuxAdditions.run - debian8の設定
apt-get install sudo
sudoers 行追加
(vagrant ALL=(ALL) NOPASSWD: ALL )
vagrantユーザへ authorized_keys配置。 apt-get install curl
mkdir ~/.ssh curl -o ~/.ssh/authorized_keys https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub chmod 700 .ssh
chmod 600 authorized_keys - box化
vagrant package --base debian8(VirtualBoxでつけた名前)
package.box という名前で作成される - vagrantにとりこみ (ここではbaseにしてるけど任意の名前にできる)
vagrant add box base package.box - vagrantで使ってみる
適当なディレクトリで
vagrant init (add box でbase以外を指定した場合はここにその名前を入力)
vagrant up - vagrantfile
config.vm.network "private_network", ip: "192.168.565.10"
とかやるとIPアドレス固定できる
vmstatに日時を付ける
vmstatに日時を付ける - いろいろつまみ食い という記事があったので
begin
while line = gets
puts Time.now.strftime("%Y/%m/%d %H:%M:%S ") + line
end
rescue KeyboardInterrupt => e
exit
end
try:
for line in iter(sys.stdin.readline,""):
print datetime.strftime(datetime.now(),"%Y/%m/%d %H:%M:%S "),line.rstrip()
except KeyboardInterrupt:
exit()
ただそれだけなんですけどね。
perlのdefineみたくいい感じのがあればよかったのだけれど見つけられなかったので
exceptionをキャッチする方向に。
PowerShell/Win32-OpenSSH/ を触ってみたよ
microsoftがOpenSSHをサポート! という話から 10/13づけでとりあえず動くバイナリが出てましたのでちょっと触ってみました。
ダウンロードは PowerShell/Win32-OpenSSH · GitHub のreleaseから。 インストール方法は Deploy Win32 OpenSSH · PowerShell/Win32-OpenSSH Wiki · GitHub にあります。 一応書いておくと
ダウンロードしたファイルを任意の場所に解答
中のsetup-ssh-lsa.cmdを管理者として実行
再起動
ssh-keygenで4種類のssh_host_keyを作るパスワードはなしで。(別に1個だけでもいいけどなんか警告が出る)
ssh-keygen.exe -t rsa -f ssh_host_rsa_key
ssh-keygen.exe -t dsa -f ssh_host_dsa_key
ssh-keygen.exe -t ecdsa -f ssh_host_ecdsa_key
ssh-keygen.exe -t ed25519 -f ssh_host_ed25519_keysshdを起動
以上でsshdが動かせます。
今回はローカルで試したのでローカルホストに接続してます。
クライアント側は ssh localhost でつなげると、パスワードを聞かれるので入力するとつながります。
つないだ先はpowershellかと思ったらどうもcmd.exeっぽく。
どこかにshell変更する設定ファイルがあるのかも。
で、ここからが挙動の話。
- コマンド打つと、コマンド名が2回表示されます。自分の打ったのと合わせて3つ。
- 存在しないコマンドを打つと、帰ってきたプロンプトに"そんなコマンドありません"的なメッセージがかぶります。
- powershellを動かすと sshdが動いてるところでpowershellが動きます。
sshdが動いてるほうでpowershellを終了するまで応答が帰ってきません
この件についてはwikiに書いてありました。
powershell -File -
とやるとpowershell使えます。 - cmd.exeは普通にsshでログインしたプロンプトで動いてくれます。
- sshdを動かしたあと、ログインされるとCtrl+C等でsshdが終了できなくなるのでtaskmanagerのお世話になる必要があります。(プロセス強制終了)
- sshクライアントは Enterキーを押すまでキー入力を送ってくれないっぽいです。
- 上記のことから、tab補完とかききません。
とりあえずさらっと触ってみたところこのくらい。
Enterキーを押すまでキー入力を送ってくれないっぽいので、 ssh した先でさらに sshしたりすると パスワードが*にならずそのまま表示されます。
これはさすがによろしくないのでは。
Windows Vagrant VirtualBoxでCentOS7なbase boxとかつくってみたはなし
やり方は本家のマニュアル見ましょう。
- vagrantのインストール。
インストール後、pathが通ってなければ通しましょう。 - sshのインストール
msys2とかMinGWとかcygwinとかなんでも(pathを通しましょう)
注意)msys2とかcygwinからwindowsのvagrantを使うときは
.bash_profile とかに export VAGRANT_DETECT_OS=cygwin
とやっておかないとttyありませんみたいに言われます。 - VirtualBoxのインストール。
- VirtualBoxへのCentOS7インストール
HW設定にて オーディオとUSBサポートを無効
名前をたとえばCentOS7に
rootのパスワードは vagrant
ユーザ vagrant パスワード vagrant でユーザを作る - VirtualBox Guest Additionsのインストール
yum install bzip2
yum install gcc
yum install kernel-devel-(バージョン).x86_64
yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarc.rpm
yum install dkms
メニューのデバイスからGuest Additions CDイメージの挿入
mount -r /dev/sr0 /mnt/
/mnt/VBoxLinuxAdditions.run - CentOS7の設定
sudoers 行追加
(1 vagrant ALL=(ALL) NOPASSWD: ALL )
(2 Defaults:vagrant !requiretty)
(3 Defaults:root !requiretty)
vagrantユーザへ authorized_keys配置。
chmod 700 .ssh
chmod 600 authorized_keys
いらないファイルの削除
/etc/sysconfig/network-scripts/ifcfg-e*
/etc/udev/rule.d/70-persistent-net.rules - box化
vagrant package --base CentOS7(VirtualBoxでつけた名前)
package.box という名前で作成される - vagrantにとりこみ (ここではbaseにしてるけど任意の名前にできる)
vagrant add box base package.box - vagrantで使ってみる
適当なディレクトリで
vagrant init (add box でbase以外を指定した場合はここにその名前を入力)
vagrant up - vagrantfile
config.vm.network "private_network", ip: "192.168.565.10"
とかやるとIPアドレス固定できる
(追記 sudoersへ3行目の追加。
vagrantfileに
config.vm.provision "shell", inline: <<-SHELL
sudo rpm -i /vagrant/some.rpm
SHELL
みたいなことをやったらttyがないとsudoできませんと怒られました。
provisionはrootユーザでやっているっぽいです。
IEEE 802.* 簡易まとめ
Linux bonding vlan
Linuxでbondingを使いつつvlanを使うと悲しいことになるようです。
eth0 eth1 でbonding(Active/Standby)構成にして、そこにVLANを作ると、
VLAN側には物理ラインの切り替わり情報が行かないようで、
切り替わったにも関わらずVLANからはGratuitous ARPが飛ばないので
切り替わりにすごく、時間がかかるという不幸。
VLANから定期的にarping投げるとかそういうバッドノウハウ的なのばかり見つかって悲しかったです。
VLANであればいくようです、今回、KVMホストでbonding組んでVLAN作ってそこにブリッジを作ってKVMゲストにつなげ、KVMゲスト上にIPアドレスをふるということをやっていたためでした。
KVMホストでActive/Standby構成のpreemptにしておくと、Active側が復帰してStandbyからActiveのほうに切り替わった時に GARPがとばせず……みたいな話でした。