ラベル 仮想化 の投稿を表示しています。 すべての投稿を表示
ラベル 仮想化 の投稿を表示しています。 すべての投稿を表示

2018年10月8日月曜日

play scalaをvagrantで動かしてみる(覚書 2018.10現在)

久々にplayを動かしてみると、だいぶ環境が変わっていてとまどった。古いネットの情報では、うまく動かせないようだ。覚書として、手順をまとめてみた。

1 Ubuntuをvagrantで利用してみる
 vagrant init bento/ubuntu-18.04
2 Vagrantfileでいくつか編集
①まず、ポート番号9000が使えるように以下の行を追加
  config.vm.network :forwarded_port, host: 9000, guest: 9000
②メモリを標準の2倍にしてみた。
 config.vm.provider "virtualbox" do |vb|
     vb.memory = "2048"
  end
③ipアドレスを指定してHostOnlyモードを有効にした。
 config.vm.network "private_network", ip: "192.168.33.10"
もし、テスト環境でなく、ネットワーク上の他のPCからアクセスするような
本番環境なら ブリッジモードの必要があり たぶん
config.vm.network "public_network"
とするのかもしれない。

3 仮想OSを立ち上げる
 vagrant up 
4 sshでアクセスする
 vagrant ssh
5  ここから先は以下のリンクがとても参考になりました。sbtのインストールは難しかったのですが、このサイトのおかげで解決しました。
 $ sudo add-apt-repository ppa:webupd8team/java 
 $ sudo apt update
 $ sudo apt install oracle-java8-installer
 $ sudo apt install oracle-java8-set-default
 $ echo "export PATH=/usr/local/anaconda2/bin:$PATH" >> /etc/bash.bashrc
$ echo "export JAVA_HOME=/usr/lib/jvm/java-8-oracle/" >> /etc/bash.bashrc
$ echo "export PATH=$PATH:$JAVA_HOME/bin" >> /etc/bash.bashrc
$ sudo apt-get remove scala-library scala
$ sudo wget www.scala-lang.org/files/archive/scala-2.11.8.deb
$ sudo dpkg -i scala-2.11.8.deb
$ echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
$ sudo apt-get update
$ sudo apt-get install sbt

6 適当なディレクトリを作りその中でsbt newを行う。sbt new playframework/play-scala-seed.g8

7 ここで、作成されたディレクトリ(上記6で名前を指定できる)に入る(←ここがうっかり逃しやすい!!)
そして、sbtを実行し、runを実行
 しかし、このままでは、外からアクセスできません。
を参考にして
8 ここで、フィルターの設定を変える必要がある。
# conf/application.conf
play.filters.hosts {
    allowed = ["."]
  }
とすればOkである。セキュリティの制限に応じて、この設定は変える必要あると思いますが。

※ネット上のあちこちの情報をかき集めることで なんとか、新しい環境でPlay scalaを動かすことができた。書籍にも、サイトにも、これらのことをまとめてあるところは、まだ少ない?ように思う。




2017年9月30日土曜日

vagrant ボックスの移行でつまづく

vagrantのボックスは他のPCに移行するとき ネットワークまわりで注意が必要なようだ
Vagrantfileにはhostonlyの設定をひとつしか記述してないので、2つのethがしかも同じIpアドレスのものができて、おかしいと思っていました。
https://qiita.com/YusukeHigaki/items/36cd2d4b60f049815fc6
こちらを参考にさせていただきました
どうやら、Macアドレスが固定化される問題があるらしい。

また、いろいろ操作しているうちに
vagrant destroyを忘れると
起動時に Warning: Remote connection disconnect. Retrying...がでてしまう。
これもhttps://teratail.com/questions/38135 を参考にさせていただきました。

2017年9月23日土曜日

vagrant box 移行 覚書

おおまかな流れとして

すでに以前 作成した設定が残っているとうまくいかないことが多いようなので
あらかじめ、以下のような操作で できるだけ不要なものは削除しておくといいようだ。
 vagrant halt  
   vagrant destroy  
 vagrant box remove ボックス名
  
vagrant packageでエクスポート
別のPCの該当フォルダにpackage.boxをコピー
vagrant box add newboxname package.box
vagrant box listで確認

ここでいったん vagrant init
ただし、できたVagrantfileは編集する必要がある。
Vagrantfileでconfig.vm.box = "newboxname" その他、ネットワーク等さまざまな初期設定を書き込む

vagrant up --provision
で起動

これらの操作をバッチファイルにまとめ、それをさらにC#でわかりやすく操作できるようにしてみた。コマンド知らない人にもサーバ構築できるようなものを試しにつくれないか検討中。

さまざまなPCで、インストールを試してみたら、うまくいかないものがあった。
 バッチコマンドの実行中に文字化けが、、どうやら、全角文字が原因らしい。
調べてみると、やはりそうでした。パス名の中に全角文字があるとうまくいかない仕様になっているとのこと。
 対策は、環境変数にVAGRANT_HOMEを追加すること。この環境変数により、ディフォルトパス(ユーザープロファイルのパス)でなく、任意に変更できる。そういえば、vagrant関連データを、c:\の直下にフォルダを作ってもうまく行かなかった。この方法なら、自分で好きなところにフォルダを作りそこに関連データを置ける。そしてそのフォルダ名は当然全角にはしないこと。


  

2017年9月17日日曜日

リバースプロキシについて

Macアドレスで制限があると、仮想ホストの運用しにくい?のでないか。
よくわからないけど、念のため、リバースプロキシを使って物理ホストのイーサネット
にアクセスしたものを、仮想ホストのイーサネットに転送させてみようかと考えた。
nginxが手軽で便利なようだ。
 server {
        listen       8080;
        server_name  i5;
         location / {
              proxy_pass         http://192.168.1.111:8080;
              proxy_redirect     default;
        }
としてみたら、なんとかうまくいった。
 http://192.168.1.111:8080/とするとうまくいかなかった。

<追記>
ホストで8080を使っていたため、nginxを使うことにしたけれど、やはりホストの8080は停止して、シンプルにvagrantで ポートフォワードを使うことにした

2017年9月16日土曜日

Dockerで注意必要なこと

その1 Dockerをいろいろ試し見ているが、なぜか文字化けが発生した。
ディフォルトではだめならしい。
こちらを参考に、cd /rootで
localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 というコマンドを実行して、tomcatを再起動したら
解消した。このへんは、ネットの情報がないと、なんとも対処できそうにない。


その2 sambaがうまくいかない
ポートを指定してやる必要があるようだ。
こちらを参考にさせていただきました。

docker run  -p 139:139 -p 445:445 のような指定をするとOkでした。

いろいろ、細かいところでひっかかるところがあるようです。

その3 vagrantの中でdocker runを行うとき、コンテナの中でプロセスを実行するには?
 ネット上で、例を見つけるのが大変だったが、cmd: という記述を追加することがわかる。
 結局、以下のようにすると うまくいった。
 注意点として、vagrant upだけではだめで、vagrant up --provisionと打ち込まないとうまくdockerが動かない。
config.vm.provision "docker" do |d|
 d.run "イメージ名(ただし、:は使わないほうがいい?)", cmd: "/init.sh" , args: " -e LANG=ja_JP.UTF-8 -p 139:139 -p 445:445 -p 8080:8080 --cap-add SYS_PTRACE  -it -v /vagrant:/tmp/shared"
end

2017年9月9日土曜日

vagrantとDockerをざっと知る

http://qiita.com/hidekuro/items/fc12344d36d996198e96

上記のリンクが参考になりました。
簡単に仮想サーバを用意して
さらにそのなかに、いろいろなプロセスを簡単に動かせるので便利かもしれません。
うまく活用すれば環境構築がだいぶスムーズにできそうです。

ひっかかったところ
その1:vagrant でパブリックネットワークを固定Ipにする方法がよくわからない
結局、
  config.vm.network :public_network,  :ip => "192.168.1.123" , :netmask=>"255.255.255.0" , :bridge => "Intel(R) Ethernet Connection (2) I218-V"
のようにしてやるとうまくいった。ただし、Intel(R) Ethernet Connection (2) I218-Vの部分は自動では取得しないので、Windowsの場合は、ネットワークのイーサネットから接続の方法の欄あたりからコピペするしかない。このへんも自動取得してほしいところだが。。

その2:dockerのUbuntu14.04の中でなぜかtomcat7が起動しない
 ネットで調べたら、解決方法がでていた
https://stackoverflow.com/questions/29683231/tomcat7-fail-to-start-inside-ubuntu-docker-container

docker run --cap-add SYS_PTRACEとするらしい

その3:dockerのブリッジのIpアドレスの固定のしかたがわからない。
http://qiita.com/bellx2/items/21fdc3bdc6958f749f3e
に方法が出ていた。
たしかに/etc/default/dockerの
DOCKER_OPTS="--bip 192.168.1.126/24           "
を追加して、再起動したら、うまくいった。
ただ、こうすると コンテナに192.168.1.1が割り振られてしまう。ここはすでに使っているので、対処療法的だけど DOCKER_OPTS="--bip 192.168.1.130/25    としてみた。でも、これは、以下のことから、あまり意味が無いことが判明。

その4:やはりコンテナにアクセスできない。
docker run -p 8080:8080  というようにしてやるといいらしい。
http://christina04.hatenablog.com/entry/2016/07/22/193000
すると、コンテナの192.168.1.129ではアクセスできないけれど
ブリッジの192.168.1.130やホストOSのアドレスでアクセスすると、コンテナ内の
サーバにアクセスできる。
いまいち、すっきりしないが、とりあえず、解決。



2016年5月4日水曜日

vmware ブリッジで接続

 Vmware のネットワーク接続には、NAT、ホストオンリー、ブリッジといった方法がありますが、これまでブリッジについてはなかなかうまくいきませんでした。
 原因は、ホスト側のアダプタの設定にあったようです。
 http://ameblo.jp/toomohiko/theme-10085331061.html を参考にさせていただき解決しました。
 物理NICの設定(プロパティ)で、VMware Bridge Protoclというのが入っていなかったことがうまくいかない原因でした。ネットワークのタブで、インストール...のボタンをクリックして、このプロトコルを探して追加したらうまくいきました。
 仮想サーバ(ゲスト)のIpアドレスを指定して、ファイアーウオールの必要なポートを開けてやると、PCの外からも仮想サーバ(ゲスト)にアクセスできるようになりました。NATの場合と違うのは、外からもアクセスできること、また、同じセグメントになっていることです。

 使い道としては、違うOSでのサーバの構築テストがあげられます。また、OSやハードが変わると、ソフトの更新も迫られる場合がよくありますが、仮想化して丸ごと保存しておいて、ブリッジ接続すれば、いつまでも、古いソフトをサーバーで使っていくことも可能かもしれません。

2013年8月13日火曜日

VirtualBoxのsambaにWindows(ホスト)からアクセスしてみる

VirtualBoxにUbuntuを入れ,sambaを動かしてみた。ホスト側からアクセスできるようにしてみた。

1 VirtualBoxの環境設定や設定をおこなう。ホストオンリーアダプタを追加する。

2  /etc/network/interfaceを以下のようにした。


# interfaces(5) file used by ifup(8) and ifdown(8)

auto lo
iface lo inet loopback
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.58.2
netmask 255.255.255.0

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

これで、windowsからは\\共有サーバ名や\\192.168.58.2などでアクセス可能になる
*************追加情報
VirtualBoxを入れているほう(Windows)のネットワーク設定は以下の通り
 VirtualBox Host-Only Networkというアダプタのプロパティ
  Ipアドレスは 192.168.58.1 
    Default Gateway  設定無し