home ホーム search 検索 -  login ログイン  | help ヘルプ

find 検索

61 - 70 / 1297    [|<]  [|<]  [<]  1  2  3  4  5  6  7  8  9  10   [>]  [>|][>|]
タイトル/名前 更新者 更新日
技術/Android/Android用SSHクライアント探した時のメモ(2012-13年頃) msakamoto-sf 2017-02-12 11:51:37
日記/2015/04/29/Facebookのユーザ名からGraphAPIでIDを取得するメモ(2011-12頃) msakamoto-sf 2017-02-12 11:46:18
技術/Linux/XFSの参考URLメモ msakamoto-sf 2017-02-12 11:03:45
技術/Security/PKI,SSL,TLS/メモ05_OpenSSLがサポートするCipher名一覧の取得 msakamoto-sf 2017-02-12 10:59:11
Java/HTTP Proxyとしてカスタマイズ可能なライブラリ参考メモ msakamoto-sf 2017-02-06 16:35:24
技術/Linux/systemd/graceful shutdown or config reload 参考メモ msakamoto-sf 2017-02-06 16:10:46
日記/2017/01/27/ネタ集め msakamoto-sf 2017-01-27 00:59:07
Java/Maven3/MultiModuleProjectのサンプル msakamoto-sf 2017-01-07 22:39:55
技術/IDE/Eclipse/Web Tools Platform (WTP), m2e-wtp msakamoto-sf 2017-01-07 22:35:54
技術/運用管理/Vagrant/"Minimal Desktop"インストールのCentOS 6.5のBox作例メモ msakamoto-sf 2017-01-07 22:25:08
ソート項目 / ソート順     1ページ 件ずつ表示

技術/Android/Android用SSHクライアント探した時のメモ(2012-13年頃)  

所有者: msakamoto-sf    作成日: 2017-02-12 11:49:59
カテゴリ: Android SSH 

メモを整理してたら、2012-13年頃、「Androidで使えるSSHクライアント(ターミナルエミュレータ含む)無いかな~」と探してたメモの切れ端が見つかったので、一応転記しておきます。

今だとまた人気ランキング変わってそう。

Android端末の用途も変わったので、今は特にAndroidからSSH接続したい~というシーンは自分の場合、無いんですが、どっかで必要になるかもなので、メモでした。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2017-02-12 11:51:37
md5:25daa7d12aa175be68139ba7d4d31254
sha1:e6eeda7989e85f72cf333bd8dfee64f2d3987d5b

日記/2015/04/29/Facebookのユーザ名からGraphAPIでIDを取得するメモ(2011-12頃)  

所有者: msakamoto-sf    作成日: 2015-04-29 11:05:18
カテゴリ:

メモを整理してたら、Facebookのユーザ名からGraphAPIでIDを取得する系の記事のURLが見つかったのでメモ。

いずれも2011-12年頃の記事ですので、3年以上経過した最新のAPIだと仕様変わってるかもしれません。当時はほぼ公開状態でしたが、公開範囲の制御とかもついたのかな・・・?全く調べてないんで、数年前はこうだった、程度の参考メモです。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2017-02-12 11:46:18
md5:4cb16642425b58272d24534b1bc35adb
sha1:f650517243a2ce23bc2f55bb2c68542178d5846c

技術/Linux/XFSの参考URLメモ  

所有者: msakamoto-sf    作成日: 2017-02-12 11:01:42
カテゴリ: Linux 

CentOS7のデフォルトのファイルシステム、XFSの勉強用、参考URLのメモです。

学ぶ(その1):

学ぶ(その2):

その他:

感想:

  • i-nodeが動的に増やせるのが面白い。とはいえ、AG中のi-nodeに使える%割合はあるようなので、どんな限界があるのか?
  • xfs用のfsckは互換性のためだけに存在して何もしてない、実際のリカバリはxfs_repairコマンドを使う。
  • 拡張のみ。縮小はできないので注意。
  • 性能についてはなんとも・・・。barrierの一貫性確保の仕組みとかRAIDを意識したストライプサイズのパラメータもあるみたいだけど、今後は基本仮想VM上でCentOS7を展開するケースが大多数になってくると思うので、仮想VMゲストの中のXFSの読み書きは、仮想ホスト側のI/O特性に縛られたりすると思うので、公開されてるベンチマークテストについても前提や環境について注意しないと参考にならないかも。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2017-02-12 11:03:45
md5:ea4629f21332b042705e5f5d8b34d49c
sha1:4d0d765b3d3968cbc15c7c1bc55d143efce50e85

技術/Security/PKI,SSL,TLS/メモ05_OpenSSLがサポートするCipher名一覧の取得  

所有者: msakamoto-sf    作成日: 2017-02-12 10:55:24
カテゴリ: SSL/TLS セキュリティ 

nginxとかApacheなど、OpenSSL使ってSSL/TLS実装してるサーバの設定で、プロトコルやCipher Suiteの設定がある。Cipher Suite で指定する文字列は一体どう処理されているのか、軽くググッた。

→とりあえず OpenSSL 使ったC言語プログラミングの雰囲気が分かった。

→ めっちゃ詳しい。もうこれでいいじゃん。

"openssl ciphers" で、 "-v" オプションでcipher suiteとかに設定する文字列指定できる。つまり、OpenSSLが内部で認識してくれる。

つまるところ "man ciphers" を参照すれば良い。

ただ、Apacheなら "SSLProtocol" に指定するような、 "all -SSLv2 -SSLv3" みたいな指定はどこなのかまだ不明。

その他、DHパラメータの指定もあった。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2017-02-12 10:59:11
md5:f36558e124cd32be9af16e8becdc7313
sha1:decbb6956b29a87e61e3aa95abb88cf8431e3bc5

Java/HTTP Proxyとしてカスタマイズ可能なライブラリ参考メモ  

所有者: msakamoto-sf    作成日: 2017-02-06 16:22:54
カテゴリ: HTTP Java Proxy 

日記/2012/05/02/JavaでHTTP(S)両対応のProxyを実験してみた。 でJavaでローカルHTTP Proxyとして動作するサンプルを組んでみたが、実際問題、カスタマイズ可能なHTTP Proxyライブラリ(Java製)はOSSだとどんなものがあるかざっとググったメモ。

  • GitHub - mback2k/jlibproxy: Java HTTP proxy library
  • GitHub - adamfisk/LittleProxy: High performance HTTP proxy originally written by your friends at Lantern and now maintained by a stellar group of volunteer open source programmers.
  • GitHub - jamesdbloom/mockserver: MockServer enables easy mocking of any system you integrate with via HTTP or HTTPS with clients written in Java, JavaScript and Ruby. MockServer also includes a proxy that introspects all proxied traffic including encrypted SSL traffic and supports Port Forwarding, Web Proxying (i.e. HTTP proxy), HTTPS Tunneling Proxying (using HTTP CONNECT) and SOCKS Proxying (i.e. dynamic port forwarding).


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2017-02-06 16:35:24
md5:1effac109c665e1d04660a08b282cf79
sha1:d23689ecea14208b4da0d09774e3f019ce7c5b1f

技術/Linux/systemd/graceful shutdown or config reload 参考メモ  

所有者: msakamoto-sf    作成日: 2017-02-06 15:59:22
カテゴリ: Apache Linux systemd 

systemdにてgraceful shutdown or graceful reload などを行うための参考メモ。

CentOS7でのApacheの例:

→ /usr/lib/systemd/system/httpd.service:

[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/httpd
ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
ExecStop=/bin/kill -WINCH ${MAINPID}
# We want systemd to give httpd some time to finish gracefully, but still want
# it to kill httpd after TimeoutStopSec if something went wrong during the
# graceful stop. Normally, Systemd sends SIGTERM signal right after the
# ExecStop, which would kill httpd. We are sending useless SIGCONT here to give
# httpd time to finish.
KillSignal=SIGCONT
PrivateTmp=true

[Install]
WantedBy=multi-user.target

ポイント:

  1. graceful reloadコマンドは ExecReload 指定になったため、systemctl reload httpd で呼べるようになっている。
  2. デフォルトでは systemctl stop で一気にSIGTERMが送信されてしまうので、それを避けるため、KillSignal=SIGCONT で無害なシグナルを送信するように修正している。代わりに ExecStop ではSIGWINCHを送るようにしており、これは apachectl -k graceful-stop と同等らしい。

systemd本家manページ:

RedHat のユニットファイルの解説:

その他参考:



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2017-02-06 16:10:46
md5:a58ca241b707cbb86bb75e00e96690fe
sha1:09ef53e8ecb37e36a2bc31e544b7a569e293932a

日記/2017/01/27/ネタ集め  

所有者: msakamoto-sf    作成日: 2017-01-27 00:56:53
カテゴリ: Chrome Edge Firefox LibreOffice Selenium WebDriver WebExtensions 
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2017-01-27 00:59:07
md5:9d6426b8a55d69bb040cad139898b389
sha1:1f5cfdf7a55005c8736951f0a98ceeb432b55bc5

Java/Maven3/MultiModuleProjectのサンプル  

所有者: msakamoto-sf    作成日: 2014-08-10 17:19:53
カテゴリ: Java Maven 

複数のMavenプロジェクトを束ねたmulti module型のプロジェクトのサンプル:

上記サンプルのポイントは、親のpom.xmlで定義したdependencyManagementとdependencyタグが、子のpom.xmlでどう扱われるか、という点。demolib1, demolib2で複数バージョン用意して、違いが分かるようにしています。

multi module型プロジェクトの作り方

multi module型のプロジェクトの作り方自体は、以下の記事を参考:

dependencyManagement と pluginManagement

Maven公式よりは以下の記事の方が端的な回答になってて分かりやすいかも:

IDE連携

Eclipse 4.2 (Juno) と NetBeans 7.4 で比較。
ポイント:マルチモジュール間のデバッグ、hotswap連携。

  • demo-warとdemo-jarを両方開いた状態でdemo-warをデバッグ起動した時、それぞれのブレークポイントで止まり、特にdemo-jarで止まった時にdemo-jarのプロジェクトに移動してそこでブレーク箇所を表示してくれるか?
    • 結果:Eclipse, NetBeans 両方OK
  • demo-warとdemo-jarを両方開いた状態でdemo-warをデバッグ起動した時、demo-jar側の修正が、demo-war側の実行中のTomcatに即座に反映されるか?
    • 結果:EclipseのみOK。NetBeansではdemo-war側のコード変更のみ、hotswapで反映された。

非常に単純な形式での実験になりますので、実際の開発環境での組み合わせによっては結果が変わる可能性もあります。上記結果は、著者個人の環境での、参考情報程度に扱って頂ければ。

maven-java-multimodule-demo1 を読み込ませたサンプル

Eclipse 4.2 (Juno) + m2e:

NetBeans 7.4:

demo-warをデバッグ実行した時のデバッグとhotswap

Eclipse 4.2 (Juno) + m2e or m2e-wtp:

  • demo-war で Mavenのtomcat7:runをDebug起動し、"Debug Configuration" の "Source"タブで、 "Source Lookup Path" に予めdemo-warとdemo-jarを入れておけば、war/jarの両方でブレークポイントを自由に設定できる。
  • J2EEパースペクティブに切り替え、m2e-wtpからの"Debug on Server"によりTomcat7でデバッグしても、war/jarの両方でブレークポイントを自由に設定できる。
    • 特に意識してSource Lookup Path"を指定したわけではないが、スムーズ時demo-war, demo-jarの両方でブレークポイントを設定し、ソースと連動して止まってくれる。
  • Eclipseの場合は、demo-warを起動した状態で、同じくEclipseで開いていたdemo-jarのソースを修正したら、即座にdemo-warのTomcat実行環境でも反映してくれた。
    • "tomcat7:run", "Debug on Server" の両方で有効
    • hotswap可能。

NetBeans 7.4:

  • demo-war でTomcatでデバッグを開始すると、特にソースルックアップの調整なしに、demo-warとdemo-jarの両方でブレークポイント設定したところで止まってくれた。
  • hotswapについては、demo-war側のみ。同時に開いていたdemo-jar側のコードを修正しても、demo-war側のTomcat実行環境には反映されなかった。


プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2017-01-07 22:39:55
md5:20f2547a282e32d67c1bc6c88cc6f5d7
sha1:507418f814beb474473486523cfacaed7f990f7b

技術/IDE/Eclipse/Web Tools Platform (WTP), m2e-wtp  

所有者: msakamoto-sf    作成日: 2014-08-03 19:23:00
カテゴリ: Eclipse Java Maven 

EclipseでWTPツールやm2e-wtpを試したメモです。

ちょっと古いけど、Server登録後に新規プロジェクトで"Web" -> "Dynamic Web Project" or "Static Web Project" 作る流れは変わってない。

プロジェクト作成の基本

"Web"カテゴリから"Dynamic Web Project"を選択すればJavaEEのServletアプリを、"Static Web Project"を選択すれば静的なWebページプロジェクトを作れます。

多分、他にもWTPで作れるようになるプロジェクトあると思うんですが、代表例は上記2つかと。

"Dynamic Web Project"だと、"Java EE"パースペクティブでこんな感じになり、web.xmlの構成要素を視認しやすくなります。右クリックでServletを追加したりすることもできます。

"Static Web Project"はシンプルにこんな感じになります。JavaScript開発用のライブラリが追加されてます。

Debug or Run時のHot Deployについて

環境:

Win7Pro 64bit 日本語版
Eclipse 4.2 Juno SR2
Eclipse Java Web Developer Tools 3.4.2.v201209272000-7F7DFSpC26SrlX9qoilV1RGQC9ivZy86-bz-IBHe
ServerとしてTomcat 7.0.x系

WTPを使ってDebug or Runを実行し、その最中にJavaのソースコードを修正すると、コンテキストの再ロードが発生するようです。
Tomcat 7.0.x系を使って起動している最中にJavaのソースを修正して保存したら、数秒後、以下のようなログがコンソールに出力されました。

8 03, 2014 6:43:11 午後 org.apache.catalina.core.StandardContext reload
情報: このコンテキストの再ロードを開始しました
8 03, 2014 6:43:13 午後 org.apache.catalina.core.StandardContext reload
情報: このコンテキストの再ロードが完了しました

コンテキストの再ロードになるので、ごっそり入れ替わるイメージになります。Servletアプリのshutdownとstartが発生するので、ContextListenerやstartup=1のServletのinit()などで複雑なクリーナップや準備処理をしていると、時間がかかるかもしれません。

m2e-wtp

Mavenプロジェクトの場合、Maven用のディレクトリ構成とEclipseのデフォルトのディレクトリ構成が大きく異なるため、そのままではWTPで処理できません。このギャップを埋めてくれるのがm2e-wtpプラグインになります。

本家:

参考:

試しに、自分で作った練習用のJersey + Servletソースを読み込ませてみました。
https://github.com/msakamoto-sf/jaxrs2-exercise-jersey-servlet

SourceTreeでcloneしたあと、EclipseのProjectのImportで、既存のMavenプロジェクトをインポートします。
→ Java パースペクティブですと、普通のMavenプロジェクトとして表示されます。

→ "Java EE" パースペクティブに切り替えると、m2e-wtpをインストールした状態ですと、自動的に認識して、WTPにあわせた見え方になりました。

Debug, Run も他のwtpプロジェクトと変わらずに操作できます。
MavenのServletアプリを通常のJavaプロジェクトで扱うと、"src/main/webapp" まで辿らないとHTMLやWEB-INFが開けないのですが、m2e-wtpであれば、"Deployed Resources" -> "webapp" から簡単にアクセスできる点も魅力的です。
WTPのプロジェクトでは、"Deployment Assembly" の設定がキモになるようですが、m2e-wtpがインストールされていると、以下の様な設定に調整してくれました。

今回試したケースでは、Mavenプロジェクトとしてインポートした後、Java EEパースペクティブに切り替えたら自動的に認識されました。そのため、明示的に"Dynamic Web Project"としてインポートする方法は未調査となります。

2014-08-02時点の環境:

Win7Pro 64bit 日本語版
Eclipse 4.2 Juno SR2
Eclipse Java Web Developer Tools 3.4.2.v201209272000-7F7DFSpC26SrlX9qoilV1RGQC9ivZy86-bz-IBHe
m2e-wtp - Maven Integration for WTP 1.0.1.20130911-1545
ServerとしてTomcat 7.0.x系

※自動的に ".project" ファイルに以下のエントリーが追加される・・・。これ、m2e-wtpが入ってないEclipse環境で開いてもエラーにならないかな?

   <buildSpec>
       <buildCommand>
           <name>org.eclipse.wst.common.project.facet.core.builder</name>
           <arguments>
           </arguments>
       </buildCommand>
       ....
   <buildSpec>
   <natures>
       ...
       <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
   </natures>

トラブル

WTPは単一のPlugin, Featureではなく、複数の要素から成り立っているため、細かいトラブルがぼちぼちありそうです。
以下、実際に遭遇したのを紹介します。

Tomcatを使ってDynamic Web ProjectをDebugすると、時々勝手にTomcatのスレッドの「processWorkerExit()」でbreakする。

環境:

Win7Pro 64bit 日本語版
Eclipse 4.2 Juno SR2
Eclipse Java Web Developer Tools 3.4.2.v201209272000-7F7DFSpC26SrlX9qoilV1RGQC9ivZy86-bz-IBHe

こんな感じで、放置しとくと、どっかのタイミングで繰り返し、勝手にbreakします。

同様の症状:

どうも、Window -> Preference -> Java -> Debug で、"Suspend execution on uncaught exceptions"にチェックが入ってると、Tomcat内の部分についてもチェックするようになり、breakしてしまうようです。

→こんな感じで、チェックを外してあげれば、Debug実行で勝手にbreakすることは無くなりました。

とはいえ、本来はアプリのコードでbreakしてくれた方がうれしいので、チェックはONにしておきたいところではあります・・・。

Static Web ProjectでRun or Debugすると "java.lang.NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext" 発生

環境:

Win7Pro 64bit 日本語版
Eclipse 4.2 Juno SR2
Eclipse Java Web Developer Tools 3.4.2.v201209272000-7F7DFSpC26SrlX9qoilV1RGQC9ivZy86-bz-IBHe

"Console"を開くとこんな例外が出てた:

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
	at java.lang.Class.getMethod0(Class.java:2685)
	at java.lang.Class.getMethod(Class.java:1620)
	at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:492)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:484)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.webapp.WebAppContext
	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
	... 6 more

検索するといくつか同様の症状が見つかったが、どれもJuno SR2で、自分も同じ。

一応対処法が載っているが、どうもかなり面倒くさい手順になりそう。
"Dynamic Web Project" + Tomcat ではこんなエラーは起きない。
"HTTP Preview Server"を使う時だけか?

結論としては、他のEclipseのバージョンで試してみるか、"Dynamic Web Project"化して試すか、別のIDEや環境にするか。
静的Webページを開発するのであれば、Eclipseに拘る必要も無いと思います。



プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2017-01-07 22:35:54
md5:df026ba0695fe54ba2db6c13b119f510
sha1:c64fd3e79060f198900cb2db4e25a3444cd415ee

技術/運用管理/Vagrant/"Minimal Desktop"インストールのCentOS 6.5のBox作例メモ  

所有者: msakamoto-sf    作成日: 2014-08-02 20:16:37
カテゴリ: DevOps Linux Vagrant VirtualBox 

技術/運用管理/Vagrant ではUbuntuでBoxを作った時のメモを載せてて、「CentOSならこうなる」的なのを簡単にメモで補足しただけでした。
今回はガッツリとCentOS 6.5で、"Minimal Desktop"インストールで作ったVirtualBoxのVMをBoxにしてみましたので、作例メモを残しておきます。

環境:

Windows7 Pro 64bit 日本語版
VirtualBox 4.3.12
Vagrant 1.6.3
CentOS 6.5 DVD iso イメージ

全体的には、技術/運用管理/Vagrant の参考資料欄にのせた記事を参考にさせてもらいました。

1. VirtualBox上でCentOS 6.5を"Minimal Desktop"タイプでインストールする。

この辺は前回と同じです。今回はVMの名前を以下にしました。

vagrant-centos6.5-x86_64

ディスクファイルタイプは"VMDK"にする必要があります:

サイズは最大8GBで可変にしました:

オーディオとUSBをOFFにしました:


ネットワークアダプタの1つめは、NATタイプにする必要があります:

ホスト名は、以下のようにしてみました。

※"vagrant-OS名"のような命名にしてる例を幾つか見かけたので、それに従いました。
例 : https://github.com/fespinoza/checklist_and_guides/wiki/Creating-a-vagrant-base-box-for-ubuntu-12.04-32bit-server

あとはrootユーザのパスワードを"vagrant"にしておきます。

最後にインストールタイプで"Minimal Desktop"タイプでインストールします。

2. インストール後の調整

インストール後に、SELinuxやiptablesの調整、vagrantユーザの追加、sudoの設定、VirtualBox Guest Additionのインストールなどを行います。

今回は"Minimal Desktop"でインストールしたためか、再起動後に、すぐにGUIでユーザ設定などを行う初期設定画面が表示されました。


ここでは、後でコマンドラインから確実に追加するため、何も入力せずに(上の画面では切れてしまってて分かりませんが)Forwardボタンをクリックします。
「本当にいいの?」と訊かれてきますが、「Yes」で進めてしまいます。

この後はrootユーザでログインします。

iptablesを無効化しておきます:

# service iptables stop
# chkconfig iptables off
# service ip6tables stop
# chkconfig ip6tables off

selinuxも無効化します。前回記事の補足説明や、参考資料を参照してください。

eth0が起動時無効になってましたので、GUIから起動時有効に変更します。

MACアドレスが変更してもethNが変わらないよう、udevの設定ファイルを修正します。前回記事の補足説明や、参考資料を参照して下さい。

SSHを有効にしますが、"Minimal Desktop"インストールタイプでは既に有効になってました。

"admin"グループを追加し、"vagrant"ユーザを"admin"グループに所属させて作成します。

# groupadd admin
# useradd -g admin vagrant
# passwd vagrant
(パスワードは"vagrant"に設定)

ここで一旦再起動して、本当にvagrantユーザでパスワード無しでsudoできるか確認しておきます。

VirtualBoxのGuest Additionをインストールする準備をします。

一旦、システム全体をアップデートしておきます:

$ sudo yum update

開発用のパッケージをまとめてインストールします:

$ sudo yum groupinstall -y "Development Tools"

※今回は"Minimal Desktop"でインストールしたせいか、kernel-headersやbzip2などもインストール済みでした。参考にした記事では、gcc, kernel-devel, kernel-headers, make, bzip2, perl とピンポイントで指定してインストールする例がありましたので、適宜調整になるかと思います。

この後、DKMSを導入する記事もあるのですが、RPMForge追加したりするのが面倒くさそうなのと、ぶっちゃけDKMS無しでも一応Guest Addition入れられたので、無しで進めます。


CentOSにDKMSを入れる参考:

こちらは、CentOSにVirtualBoxをインストールするためにDKMSをインストールするパターン

最後、"vagrant package" で圧縮する前に、キャッシュの削除やDiskのゼロ埋めを行い、圧縮率を高めます。

# yum clean all
# rm -rf /tmp/*
# dd if=/dev/zero of=/EMPTY bs=1M
# rm -f /EMPTY

3. "vagrant package" -> "vagrant box add" -> "vagrant init" -> "vagrant up"

Boxファイルの生成:

> vagrant package -h
Usage: vagrant package [options] [name]

Options:

        --base NAME                  Name of a VM in virtualbox to package as a base box
        --output NAME                Name of the file to output
        --include FILE...            Additional files to package with the box
        --vagrantfile FILE           Vagrantfile to package with the box
    -h, --help                       Print this help

> vagrant  package --base vagrant-centos6.5-x86_64
==> vagrant-centos6.5-x86_64: Exporting VM...
==> vagrant-centos6.5-x86_64: Compressing package to: c:/work/package.box

BoxファイルをローカルのVagrant環境に追加する:

> vagrant box add centos65-64bit-minimal-desktop package.box
==> box: Adding box 'centos65-64bit-minimal-desktop' (v0) for provider:
    box: Downloading: file://c:/work/package.box
    box: Progress: 100% (Rate: 152M/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'centos65-64bit-minimal-desktop' (v0) for 'virtualbox'!

> vagrant box list
centos65-64bit-minimal-desktop (virtualbox, 0)
hashicorp/precise32            (virtualbox, 1.0.0)
hashicorp/precise64            (virtualbox, 1.1.0)
ubuntu-1204-lts-t1             (virtualbox, 0)

この時点で、以下のディレクトリが作成され、圧縮状態のvmdk, metadata.json, Vagrantfile, box.ovf が展開される。ディレクトリ名が末尾"0"になってるところは多分ローカルのBoxで特にバージョン情報なども入ってないからだと思われる(Vagrant Cloudから追加した場合はバージョン番号になる)。

$HOME/.vagrant.d/boxes/centos65-64bit-minimal-desktop/0

テスト用のディレクトリを作成し、追加したBoxで初期化する:

> cd c:\work\tmp\vagrant_ex
> mkdir t6
> cd t6
> vagrant init centos65-64bit-minimal-desktop
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

この時点で、以下のディレクトリが作成され、Vagrantfileが生成される。

c:\work\tmp\vagrant_ex\t6

ここでVagrantfileに "config.vm.provider" でVirtualBox用のカスタマイズ設定を追加:

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
...

  config.vm.provider "virtualbox" do |vb|
    vb.name = "centos65_md_demo"

    # Don't boot with headless mode
    vb.gui = true
  
    # Use VBoxManage to customize the VM. For example to change memory:
    vb.customize [
      "modifyvm", :id, 
      "--memory", "2048",
      "--vram", "64",
      "--cpus", "2",
      "--audio", "none",
      "--clipboard", "bidirectional",
      "--usb", "off",
      "--usbehci", "off",
      "--nic1", "nat",
      "--nictype1", "82540EM",
      "--cableconnected1", "on",
      "--nic2", "hostonly",
      "--nictype2", "82540EM",
      "--cableconnected2", "on",
      "--hostonlyadapter2", "VirtualBox Host-Only Ethernet Adapter",
    ]
  end

...
end

Vagrantで仮想マシンを起動する:

> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos65-64bit-minimal-desktop'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: centos65_md_demo
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => C:/work/tmp/vagrant_ex/t6

これによりVirtualBoxのVMが保存されてるディレクトリに以下のディレクトリが生成され、伸長されたvmdkが展開された。

$HOME/VirtualBox VMs/vagrant-centos6.5-x86_64

仮想マシンを停止する:

> vagrant suspend
==> default: Saving VM state and suspending execution...

仮想マシンを破棄する:

(t6のディレクトリにcdした状態で)
> vagrant destroy

→ "$HOME/VirtualBox VMs/vagrant-centos6.5-x86_64" の中のvmdkは削除されるが、フォルダは残っていたので、手動で削除した。
タイミングかどうかわからないが、VirtualBoxのGUIマネージャ上に残ってしまうケースもあった。その場合も手動でGUIマネージャ上から削除した。



プレーンテキスト形式でダウンロード
現在のバージョン : 3
更新者: msakamoto-sf
更新日: 2017-01-07 22:25:08
md5:b3556c516ec14b8261c14a7501fb5403
sha1:91ef3c95c8d8ce11072277f159792c1169178bc3