Dockerホスト用軽量OS RancherOSでLaraDock環境構築

 

自宅鯖でDocker環境を構築する上で、CPUやメモリなどのリソースを限りなく節約する為に軽量ホストRancherOSを試してみました。

で、LaraDockが動くところまでをメモ。

  • VirtualBox起動
  • 新規仮想PCを下記で作成
    ・タイプ:Linux
    ・OS:Other Linux 64bit
    ・メモリ:4GB
    ・新規ディスク:8GB
    ・アダプター1:NAT、アダプター2:HostOnlyアダプタ(事前にVirtualBoxのグローバルツールで仮想アダプタを有効にしておく必要あり)
  • 下記にてダウンロードした、ブート可能なranchar.isoを光学ドライブとしてマウント
    https://releases.rancher.com/os/latest/rancheros.iso
  • 起動後、牛のアスキーアートが表示される。
  • パスワード設定
    sudo passwd rancher
  • TeraTerm等のターミナルソフトでSSH接続
  • RancherOSをHDDにインストール
    echo 'hostname: myrancher' > cloud-config.yml
    sudo ros os list

     にて最新のバージョンを確認し下記でインストール

    sudo ros install -i rancher/os:v1.5.0 -c cloud-config.yml -d /dev/sda --append 'rancher.password=mypass123'
  • インストールが終わるとrebootされる。
  • ranchar.isoを光学ドライブから除去し、isoからブートしないようにHDDからブートする。
  • 再度、TeraTerm等のターミナルソフトでSSH接続
  • DockerComposeをインストール
    sudo wget https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m`
    sudo mv docker-compose-Linux-x86_64 docker-compose
    sudo chmod +x docker-compose
  • gitコマンドをインストール
    alias git="docker run -ti --rm -v $(pwd):/git bwits/docker-git-alpine"
  • 開発用ディレクトリの準備
    git clone https://github.com/LaraDock/laradock.git
    cd laradock
    sudo cp env-example .env
    vi .env
    APP_CODE_PATH_HOST=../hoge_proj/
  • Laradockコンテナ群をUp(20~30分位かかる)
    sudo ./docker-compose up -d nginx mysql redis
  • コンテナが動いているか確認
    docker-compose ps

    Name Command State Ports
    —————————————————————————————————————
    laradock_docker-in-docker_1 dockerd-entrypoint.sh Up 2375/tcp
    laradock_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
    laradock_nginx_1 /bin/bash /opt/startup.sh Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
    laradock_php-fpm_1 docker-php-entrypoint php-fpm Up 9000/tcp
    laradock_redis_1 docker-entrypoint.sh redis … Up 0.0.0.0:6379->6379/tcp
    laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp

  • Laravelプロジェクトのインストール(10分位かかる)
    ./docker-compose exec workspace bash
    composer create-project laravel/laravel ./hoge_proj --prefer-dist
    chmod -R 777 storage/
  • ホストOSのIP(HostOnlyアダプタ側)をブラウザで開き、Laravelと表示されれば完了!
  • コンテナをリビルドするには
    sudo docker-compose up --build -d nginx mysql redis

XigmaNASでautoexpandをONにする

FreeNASよりもメモリ消費が少なく、GUIが使いやすいXigmaNasで、Autoexpand(HDD交換時にPool容量を自動で拡張するオプション)をOnにする方法。

  • SSHで接続する(事前にサービス画面でチェックボックスにチェックし、SSHを有効化)
  • 下記コマンドを実行

# zpool set autoexpand=on fileserver

  • 下記コマンドで有効になっていればOK

# zpool get autoexpand fileserver

ちなみに、GUIツールのコマンド実行でも上記コマンドを実行は可能。

Windows10の更新で、エラーコード 0xc1900208 が表示され失敗

Windows10の更新で、エラーコード 0xc1900208 が表示され失敗したら、SymantecかTrend Microのアンチウィルスソフトが悪さをしているっぽい。

何度やり直してもWindows10のUpdateに失敗する場合は上記を疑ってみると良い。

7zip(7za)で所定の文字列を含む(含まない)ファイルのみ解凍する

  • Install for CentOS
    yum install p7zip
  • Install for ubuntu
    sudo apt-get install p7zip-full
  • ファイル名に「PUB」が含まれるファイル以外を全て解凍
    7za x -xr\!*PUB* hoge.zip
  • ファイル名に「MOV」が含まれるファイルを全て解凍
    7za x -ir\!*MOV* fuga.zip

mkv ⇒ mpeg2 変換を ffmpeg で簡単に

撮りためた動画(mkv)をレグザで見たくなったので、ffmpegで変換してみた


ffmpeg -y -i "Y:\media\hogefuga.mkv" -target ntsc-dvd -vcodec mpeg2video -s 720x480 -aspect 16:9 -r 29.97 -map 0:0 -map 0:2 "Y:\media\hogefuga.mpg"

こんな感じでうまくいった。

注意すべきは、音声トラックNOを指定する場合、-map にてオーディオトラック番号を指定する。 ここでは、0:0は映像を意味し、0:2が出力したい音声トラック番号となる。ちなみに、0:1が英語で、0:2が日本語であった。
ちなにみ音声トラック番号を知るには、ffmpeg -i でファイルのメタデータを確認すればわかる。

以上

PostgreSQLで全テーブルのレコード数を一気にドンするやつ

select count(*) とかだと、大量レコードのテーブルカウントは時間がかかりすぎる

一気にドンしたい場合はこれ

select n_live_tup from pg_stat_user_tables where relname='test' and schemaname='public';

以上

ログ監視とか、ターミナルいっぱい出す時に便利なやつ発見

キータで面白いの見つけたので共有。
http://qiita.com/greymd/items/8744d1c4b0b2b3004147

ログ監視とかの時、複数のログをtailしたり、ターミナルいっぱい出す時に便利そうなので使ってみた。
CentOS7に以下で導入しました。

su -
yum install tmux
wget https://raw.githubusercontent.com/greymd/tmux-xpanes/master/bin/xpanes -O ./xpanes
install -m 0755 ./xpanes /usr/local/bin/xpanes

xpanes -c 'tail -f {}' /var/log/{messages,maillog,yum.log,dmesg}

上記、ログは適当です・・・試した所、確かに4ペインでログが同時に見られました!!

こんな風にすると、1~100のDHCPの接続状況を一気に確認できたりします!すごい。

xpanes -c 'ping {}' 172.19.91.{1..100}

シェルスクリプト(sendmailコマンド)だけでメール送信

保守監視等で、よく利用するのだが毎回忘れるので備忘録的に。

CRONで毎日お昼の12時に実行するサンプル

0 12 * * * bash /path/to/dir/hogefuga_report.sh

sendmailコマンドを使用して、SQL(postgresql)を実行して結果をメール送信するスクリプトサンプル
hogefuga_report.sh

#!/bin/sh

#### 汎用メール送信スクリプト
export PATH=$PATH:/usr/sbin
export PGPASSWORD=naisyodayo

NOWDATE=`date '+%m月%d日 %R '`

HOGE_CNT=`psql -U postgres -d dev --tuples-only -c 'select count(*) as hoge_cnt from hogehoge_tbl'`
FUGA_CNT=`psql -U postgres -d dev --tuples-only -c 'select count(*) as fuga_cnt from fugafuga_tbl'`
HOGE_CNT=`echo ${HOGE_CNT} | tr -d " "`
FUGA_CNT=`echo ${FUGA_CNT} | tr -d " "`

MAIL_TO="hogeko@hoge.com.jp"
MAIL_CC="fugasuke@fuga.com.jp"
MAIL_BCC="pekeo@peke.com.jp"
MAIL_FROM="ore@oresama.com.jp"
SUBJECT="俺様のレポート"
DATA="俺様の反響結果は以下となる"

mail_send () {
cat << EOD | sendmail -t
From: ${MAIL_FROM}
To: ${MAIL_TO}
Cc: ${MAIL_CC}
Bcc: ${MAIL_BCC}
Subject: ${SUBJECT}
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"

俺様へ

今日(${NOWDATE})のレポートを送るのでよく見ること。

${DATA}

・ほげ数
${HOGE_CNT}

・フガ数
${FUGA_CNT}

以上

EOD
}

mail_send

exit 0

Amazon Lightsail で Magento2 やってみた

実家が自営業やっているので商品管理をオープンソースでってことになり、Magentoというのを使ってみようということに。手っ取り早いのが、最近出来たばかりの新しいAWSのVPSサービスで、Lightsailってやつに、Magent2を組み込んだ状態でEC2みたいなサーバインスタンスが一瞬で起動できるようなので、試してみた。

https://lightsail.aws.amazon.com

もともとEC2でサーバ作った際に、AWSアカウントは持っているので、あとはボタンをポチポチ2回(アプリとサーバスペックを選択 画像参照)クリックでサーバで来たった!!!

screencapture-lightsail-aws-amazon-ls-webapp-instances-create-1482032674873

 

Magento2.1.2 と、インスタンスプランはとりあえずお試しなので、$10を選択。

BaseOSはデフォルトのAmazonLinuxにしたが、Ubuntuがよいとの書き込みもあるようだ。

設定したら、一番下の、「Create」をクリックして完了。

この状態で3~4分程度したらサーバがMagentoがインストールして起動状態となる。

試しに、画面に表示されているIPアドレスをブラウザで叩いてみると、そのうち以下のページが現れるようになる。

screencapture-ec2-54-152-228-196-compute-1-amazonaws-1482032507245画面下のペロッとめくれた部分に「Manage」とあり、ここから、Magento2のECサイト管理画面にアクセスできる。

ログインユーザ名は「user」パスワードはサーバー内部のログから取得する必要がある。

以下にパスワードの取得方法を記す。

 

screencapture-lightsail-aws-amazon-ls-webapp-instances-magento-1gb-virginia-1-connect-1482032471028AWSのこの画面から、「Connect using SSH」をクリックし、SSHコンソールを開く。

開いたら以下を入力しEnterを押下。

 cat /home/bitnami/bitnami_application_password

パスワードが表示されるので、これを管理画面のログインに利用すればOK。

コンソールのキャプチャ画像は下記。

aaa

 

 

 

 

 

 

 

 

無事ログインすると、以下の管理画面が表示される。

screencapture-ec2-54-152-228-196-compute-1-amazonaws-admin-admin-dashboard-index-key-c440ebc96710c4c2cb2efe6c35722b15a8b2f9b9724ca139927b0ee1b2ff6429-1482032494968

 

 

 

 

 

 

 

一旦ここまで。日本語化はまた今度。

 

reboot, shutdownコマンドが効かない!

さくらVPSがフリーズ。何とかリモートで対応したが、最後にrebootしようと思ってshutdown -r now したのだが、何も起こらず空振り状態。

以下にて、シャットダウンできた。

echo s > /proc/sysrq-trigger
echo u > /proc/sysrq-trigger
echo b > /proc/sysrq-trigger

さくらコンパネからの強制終了よりはマシかと・・・