Ubuntu 12.04 に Ansible をインストールする手順

Ubuntu 12.04 に構成管理ツールである Ansible (http://www.ansible.com/home) をインストールし、疎通確認するまでの手順メモ。公式ドキュメント (http://docs.ansible.com/intro_installation.html#latest-releases-via-apt-ubuntu) を主に参考としている。

Ansible をインストールするマシン (管理サーバと呼ぶ) 以外に別途、管理対象マシン (仮想マシンでも可) を用意しておくこと。

  • Ubuntu Server 12.04.5 LTS 64bit
  • Ansible 1.7.2

事前準備

まず管理サーバ (Control node) にて、python-software-properties パッケージがインストールされているか確認。

$ dpkg -l | grep python-software-properties

何も表示されない場合、以下の通りインストール。

$ sudo apt-get install python-software-properties
(前略)
The following NEW packages will be installed:
  python-pycurl python-software-properties unattended-upgrades
0 upgraded, 3 newly installed, 0 to remove and 13 not upgraded.
(後略)

もう一度 dpkg コマンドを実行し、インストールされたことを確認。

$ dpkg -l | grep python-software-properties
ii  python-software-properties       0.82.7.7                          manage the repositories that you install software from

ついでに依存パッケージも確認。おまけなので、実行しなくてもよい。

$ apt-cache depends python-software-properties
python-software-properties
  Depends: python2.7
  Depends: python
  Depends: python
  Depends: python-apt
  Depends: lsb-release
  Depends: python-gnupginterface
  Depends: unattended-upgrades
  Depends: iso-codes
  Depends: python-pycurl

Ansible のインストール

管理サーバに PPA (Personal Package Archive) リポジトリサイトを追加し Ansible をインストールする。

$ sudo apt-add-repository ppa:ansible/ansible
(Press [Enter] to continue ... と聞かれたら enter 押下)
$ sudo apt-get update
$ sudo apt-get install ansible
(前略)
The following NEW packages will be installed:
  ansible python-jinja2 python-markupsafe python-paramiko python-support python-yaml sshpass
The following packages will be upgraded:
  python-crypto
1 upgraded, 7 newly installed, 0 to remove and 13 not upgraded.
(後略)

インストール後の確認。

$ ansible --version
ansible 1.7.2
$ dpkg -l | grep ansible
ii  ansible                          1.7.2-1ppa~precise                A radically simple IT automation platform
$ apt-cache depends ansible
ansible
  Depends: python
  Depends: python-support
  Depends: python-jinja2
  Depends: python-yaml
  Depends: python-paramiko
  Depends: python-httplib2
  Depends: python-crypto
  Depends: sshpass

疎通確認

以下、管理サーバにて実施。カレントディレクトリにて hosts という名前のファイル (インベントリファイルと呼ぶ。Ansible はこのファイルに記載したマシンにしかアクセスできない) を作成する。

$ echo <管理対象マシンのIPアドレス> > hosts && cat ./hosts

上記で指定した <管理対象マシンのIPアドレス> が出力されたらOK。

次に、Ansible を使って ping 疎通してみる。ここでは SSH パスワード認証するためのオプション -k を指定している。

$ ansible -i ./hosts <管理対象マシンのIPアドレス> -u <管理対象マシンのユーザ> -k -m ping
SSH password:
(<管理対象マシンのユーザ> のパスワードを入力し、enter 押下)
<管理対象マシンのIPアドレス> | success >> {
    "changed": false,
    "ping": "pong"
}

上記の様な応答が返ってくればOK。うまくいかない場合は -vvvv オプションを付けて再度実行すると、原因が何か分かるかもしれない。

カテゴリー: Ansible, Ubuntu | Ubuntu 12.04 に Ansible をインストールする手順 はコメントを受け付けていません。

VirtualBox で「VERR_SUPDRV_COMPONENT_NOT_FOUND」エラーが発生した場合の対処法

VirtualBox で以下のようなエラーメッセージが起動し、VM が起動しない事象が発生した際の対処法。

Failed to open/create the internal network ‘HostInterfaceNetworking-eth0′
(VERR_SUPDRV_COMPONENT_NOT_FOUND)

なお自分の環境は下記の構成で発生した。仮想ネットワークにブリッジアダプターを指定した場合に発生し、NAT 等では発生しないことを確認済み。

  • Ubuntu 12.04 LTS
  • VirtualBox 4.3.14

対処法としては VirtualBox を再インストールすることとなる。
Ubuntu 環境であれば .deb ファイルをダウンロードして再インストールすることになるが、その際、起動中の VM があれば停止/保存状態としておく必要がある点に注意。
再インストール後、エラーとなっていた VM が正常に起動すれば OK。

カテゴリー: VirtualBox, トラブルシューティング | VirtualBox で「VERR_SUPDRV_COMPONENT_NOT_FOUND」エラーが発生した場合の対処法 はコメントを受け付けていません。

Ubuntu 12.04 に etherpad-lite をインストールする手順

Ubuntu 12.04 に etherpad-lite をインストールした際の手順メモ。
こちら (https://help.ubuntu.com/community/Etherpad-liteInstallation) のサイトを参考とした。というか、ほぼ同じ。

  • Ubuntu Desktop 12.04.5 LTS 64bit
  • etherpad-lite (GitHub の最新)

前準備

まず etherpad-lite の実行ユーザ etherpad を追加する。
以下、CLI 環境での操作を前提とする。

$ sudo adduser --system --home=/opt/etherpad --group etherpad

次に、関連パッケージをインストールする。

$ sudo apt-get install gzip git-core curl python libssl-dev build-essential abiword python-software-properties

node.js のインストール

etherpad-lite が node.js で動作しているので、こちらもインストールする。

$ sudo add-apt-repository ppa:chris-lea/node.js
$ sudo apt-get update
$ sudo apt-get install nodejs

etherpad-lite のインストール

以下の手順で etherpad-lite をインストールし、実行する。

$ sudo su - etherpad -s /bin/bash
$ mkdir -p ~/local/etherpad
$ cd ~/local/etherpad
$ git clone git://github.com/ether/etherpad-lite.git
$ cd etherpad-lite
$ bin/run.sh

ブラウザで http://localhost:9001/ にアクセスし、ログイン画面が表示されたら OK。
起動時に「Error raised: listen EADDRINUSE」というエラーが出た場合は、etherpad-lite がデフォルトで使おうとする 9001 番ポートが既に他のプロセスで使用されていることが原因。設定ファイル /opt/etherpad/local/etherpad/etherpad-lite/settings.json を編集し、16行目付近の port を 未使用なポート番号に変更した上で、再度 run.sh を実行する。

etherpad-lite の自動起動設定 (サービス化)

前述の run.sh で etherpad-lite を起動すると CLI セッションを閉じた際に etherpad-lite も停止してしまう。サーバ起動時にサービスとして自動起動するように設定を行う。前述の run.sh を起動している場合は Ctrl + c で停止し、etherpad ユーザから exit しておく。

$ sudo mkdir /var/log/etherpad-lite
$ sudo chown etherpad /var/log/etherpad-lite
$ sudo chown -R etherpad /var/log/etherpad-lite

以下のファイルを新規作成する。

$ sudo vi /etc/init/etherpad-lite.conf

以下をコピペ。

description "etherpad-lite"

start on started networking
stop on runlevel [!2345]

env EPHOME=/opt/etherpad/local/etherpad/etherpad-lite
env EPLOGS=/var/log/etherpad-lite
env EPUSER=etherpad

pre-start script
    cd $EPHOME
    mkdir $EPLOGS                      ||true
    chown $EPUSER:admin $EPLOGS        ||true
    chmod 0755 $EPLOGS                 ||true
    chown -R $EPUSER:admin $EPHOME/var ||true
    $EPHOME/bin/installDeps.sh >> $EPLOGS/error.log || { stop; exit 1; }
end script

script
    cd $EPHOME/
    exec su -s /bin/sh -c 'exec "$0" "$@"' $EPUSER -- node node_modules/ep_etherpad-lite/node/server.js \
                          >> $EPLOGS/access.log \
                          2>> $EPLOGS/error.log
end script

etherpad-lite サービスを起動する。

$ sudo start etherpad-lite

正常に起動し、http://localhost:9001/ へアクセスできたら OK。

ログのローテーション設定

前述でログ出力するように設定したが、同じログファイルに追記し続けるため、ログファイルが肥大化してディスクを圧迫することを避けるため、ログファイルをローテーションするための設定を行う。

以下のファイルを新規作成する。

$ sudo vi /etc/logrotate.d/etherpad-lite

以下をコピペ。

/var/log/etherpad-lite/*.log
{
        rotate 4
        weekly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                restart etherpad-lite >/dev/null 2>&1 || true
        endscript
}

保存後、以下のチェック用コマンドを実行する。

$ logrotate -d /etc/logrotate.d/etherpad-lite

色々出力されるが、とりあえず error と表示されなければ OK。

カテゴリー: etherpad-lite, Linux, Ubuntu | Ubuntu 12.04 に etherpad-lite をインストールする手順 はコメントを受け付けていません。

Ubuntu 12.04 に phpVirtualBox をインストールする手順

Ubuntu 12.04 に phpVirtualBox をインストールした際の手順メモ。

  • Ubuntu Desktop 12.04.5 LTS 64bit
  • Oracle VirtualBox 4.3.14
  • phpVirtualBox 4.3-1

VirtualBox のダウンロード&インストール

まず、Oracle VirtualBox をダウンロードし、インストールする。
以下の作業は、ubuntu ユーザの GUI 環境での作業を前提とする。

自分の環境では、apt-get のパッケージ・リポジトリ版では正常に環境構築できなかったため、
公式サイトよりダウンロードし、インストールする方式を採用した。
https://www.virtualbox.org/wiki/Downloads
リンク「VirtualBox 4.3.14 for Linux hosts」から Ubuntu 12.04 AMD64 用 debian パッケージファイル (virtualbox-4.3_4.3.14-95030~Ubuntu~precise_amd64.deb) をダウンロードし、インストールする。Desktop の DashHome で「virtualbox」で検索できて、かつ起動できれば OK。

次に、VirtualBox 4.3.14 Extension Pack (Oracle_VM_VirtualBox_Extension_Pack-4.3.14-95030.vbox-extpack)を同様にダウンロードし、インストールする (ダウンロードしたファイルをダブルクリックでインストール可能)。VirtualBox の環境設定画面で「機能拡張」に拡張パッケージとして「Oracle VM VirtualBox Extension Pack」が有効になっていれば OK。

Apache2 & PHP5 &関連パッケージのインストール

phpVirtualBox を動かす上で必要なパッケージをインストールする。
以下の作業は、ターミナルを用いた CLI 環境での作業を前提とする。

まず、必要パッケージのインストール。

$ sudo apt-get install apache2 libapache2-mod-php5 php5 chkconfig

最後の chkconfig はvboxweb-service を自動起動させる設定用パッケージ。
インストール完了後、http://localhost/ で Web サーバが起動していれば OK。

phpVirtualBox のインストールと設定

まず、phpVirtualBox をダウンロードする。

$ wget http://downloads.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.3-1.zip

ダウンロードしたファイルを apache2 のデプロイ用ディレクトリに配置する。

$ sudo mv phpvirtualbox-4.3-1.zip /var/www/
$ cd /var/www/
$ sudo unzip phpvirtualbox-4.3-1.zip
$ sudo mv phpvirtualbox-4.3-1 phpvirtualbox

公式サイトの Wiki (http://sourceforge.net/p/phpvirtualbox/wiki/Home/) を参考にしながら設定を行う。

$ cd phpvirtualbox

設定ファイルをサンプルファイルから作成する。

$ sudo mv config.php-example config.php
$ sudo vi config.php

以下、設定を変更した箇所。
実行ユーザの設定を ubuntu に変更した理由は、GUI で ubuntu ユーザで作成した VM が既にあったため。
VirtualBox は ~/VirtualBox VMs というディレクトリ配下に VM 関連のファイルを作成することから、実行ユーザが既定の vbox だと ubuntu ユーザで作成した VM が phpVirtualBox で参照できなくなる、という問題を回避した。
また、ユーザインタフェースを日本語に変更するため、$language の設定を ja に変更した。

12行目付近:

var $username = 'ubuntu';
var $password = '**********';

22行目付近:

var $language = 'ja';

vboxweb-service を起動するための設定ファイルを編集する。
筆者の環境ではファイルが存在しなかったため、新規作成した。

$ sudo vi /etc/default/virtualbox

以下を追記する。

VBOXWEB_USER=ubuntu

vboxweb-service サービスを起動する。

$ sudo /etc/init.d/vboxweb-service start

サービスが起動したことを確認する。

$ lsof -ni:18083

以下の様な出力結果で、vboxwesrv が LISTEN となってれば OK。

COMMAND    PID   USER FD TYPE DEVICE SIZE/OFF NODE NAME
vboxwebsr 1614 ubuntu 9u IPv4  11091      0t0  TCP 127.0.0.1:18083 (LISTEN)

サービスを自動起動する設定を行う。

$ chkconfig vboxweb-service on

最後に、ブラウザで http://localhost/phpvirtualbox/ へアクセスしてログイン画面が表示され、デフォルトのアカウント ID: admin / PW: admin でログインできれば OK。

カテゴリー: Linux, phpVirtualBox, Ubuntu, VirtualBox | Ubuntu 12.04 に phpVirtualBox をインストールする手順 はコメントを受け付けていません。

Ubuntu へ Google Chrome インストール時に「only install this file if you trust the origin」と表示されてインストールできないときの対処法

Ubuntu 12.04 LTS 64bit で起きた事象への対処法。

ブラウザから Google Chrome をダウンロードし、google-chrome-stable_current_amd64.deb をダブルクリックして Ubuntu Software Center が起動するところまでは順調だったけれど、install ボタンをクリックしても反応がなく、インストールが始まらない。

表示されているメッセージ「only install this file if you trust the origin」を読む限り、野良パッケージをダウンロードしたために、信頼されないパッケージはインストールさせないようになっているように思われる。

以下の対処法にて解決することを確認。要は強制インストール。

$ sudo apt-get install -y libxss1
$ sudo dpkg -i google-chrome-stable_current_amd64.deb
$ sudo apt-get install -f

Dash home で「chrome」と検索し、Google Chrome が起動すればOK。

カテゴリー: Linux, Ubuntu, トラブルシューティング | Ubuntu へ Google Chrome インストール時に「only install this file if you trust the origin」と表示されてインストールできないときの対処法 はコメントを受け付けていません。

Mac のターミナルで ssh する際に「Host key verification failed.」と表示されなくてログインできなくなった場合の対処法

VirtualBox 等で Linux 仮想マシンを何度か再構築した上で ssh 接続しようとすると、以下のエラーメッセージが出てログインできなくなることがある。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.

原因としては、仮想マシンを再作成した際に、クライアントである Mac に保存したRSA 鍵がサーバ側の鍵と照合できなくなったことによりログイン失敗となるため。

対処としては、Mac のターミナル上で以下のコマンドを実行してホスト鍵の情報を削除し、再度 ssh ログインすればOK。

$ rm ~/.ssh/known_hosts
カテゴリー: Linux, Mac, VirtualBox, トラブルシューティング | Mac のターミナルで ssh する際に「Host key verification failed.」と表示されなくてログインできなくなった場合の対処法 はコメントを受け付けていません。

Eclipse のツールバーに Android SDK や AVD Manager のアイコンが表示されない場合の対処法

新規に Eclipse をインストールし、ADT プラグインを導入した際に Android SDK や AVD Manager のアイコンが表示されない場合の対処法。

  • Mac OS X 10.8.2
  • JDK Java SE 7
  • Eclipse 4.2.1
  • ADT (Android Development Toolkit) 21.1
  1. Eclipse の [Window] メニュー > [Customize Perspective…] を選択
  2. [Tool Bar Visibility] タブに [Android] が表示されていないことを確認(おそらく、これが原因)
  3. 同画面で、[Command Groups Availability] タブを選択
  4. [Available command groups] より [Android SDK and AVD Manager]にチェックをし、OKボタンをクリック
  5. Eclipse のツールバーにアイコンが表示されていることを確認
カテゴリー: Android, Eclipse, Mac, トラブルシューティング | Eclipse のツールバーに Android SDK や AVD Manager のアイコンが表示されない場合の対処法 はコメントを受け付けていません。

PAE に対応していない PC で Linux をインストールできない!

備忘録として。
結論から言うと、最新 Linux をインストールできないので、古いバージョンの Linux をインストールする必要がある。

古いノートPC(IBM ThinkPad T42)を使って Linux 環境(このときは CentOS 6.3)を構築しようと考えたところ、インストール時に以下のエラーメッセージが出力されてインストーラが起動しなかった。

  • “This kernel requires the following features not presented on CPU: pae
    Unable to boot – please use a kernel appropriate for your CPU”

ざっと意訳すると、PAE に対応していない PC にはインストールできないよ!ということらしい。PAE とは物理メモリ拡張のことだが、Pentium M といったノートPCで使われていた CPU が PAE には対応しておらず、新しい Linux ディストリビューションが PAE 非対応の CPU をサポート対象外としたことに原因がある。

ちなみに、CentOS は 6.x から、Ubuntu は 12.04 あたり?(Ubuntu は未確認)から PAE 非対応の CPU をサポート対象外としているらしい。そのため、今回は CentOS 5.8 をインストールすることで暫定対応。

カテゴリー: Linux | PAE に対応していない PC で Linux をインストールできない! はコメントを受け付けていません。

Dropbox を CentOS にインストールする手順

CentOS 6.2 の 32 bit 環境に Dropbox をインストールしたときのメモ。
公式サイトの補足として。

  1. Dropbox サイトにアクセス
    1. https://www.dropbox.com/install?os=lnx
    2. nautilus-dropbox-1.4.0-1.fedora.i386.rpm をダウンロード
      ※サイトに書いてある通り、rpm を wget でダウンロードしても可。
  2.  一般ユーザ上で rpm をインストール
    1. GUI 環境があれば、Firefox 等のブラウザからダウンロードして rpm ファイルをダブルクリックする。
  3. 一般ユーザ上で dropbox コマンド実行(root ユーザ上で実行すると上手くいかなかった)
    1. $ dropbox start -i

これで Dropbox ダウンローダが起動するので、後はウィザードに従って設定すれば利用可能となる。

カテゴリー: Dropbox, Linux | Dropbox を CentOS にインストールする手順 はコメントを受け付けていません。

Android レイアウト xml 属性でよく間違える属性

備忘録として。
レイアウトXMLを作成する際に、よく「どっちがどっちだっけ?」と分からなくなってしまう属性や属性値たちをまとめてみた。

  • android:layout_width や android:layout_height 属性の「fill_parent」と「wrap_content」
    • fill_parent…階層上の親 View の大きさに従う。右揃えにしたいとき等によく使う
    • wrap_content…自分自身の属性値(画像の大きさやテキストの長さ等)や子 View の大きさに従う。View 同士を詰めたいとき等によく使う
  • 「android:layout_gravity」属性 と 「android:gravity」属性
    • layout_gravity…自分自身の位置を、親 View に配置する位置(レイアウト)を指定したいときに使う
    • gravity…自分自身が持つ子 View(文字とか画像とか)の配置位置を指定するときに使う
カテゴリー: Android | Android レイアウト xml 属性でよく間違える属性 はコメントを受け付けていません。