RancherOS上に作ったLaradock環境にLaravel-Adminをインストールメモ

  • ComposerでLaravel-Adminをインストール

    laradockディレクトリに移動して
    ./docker-compose exec workspace bash
    composer require encore/laravel-admin
    php artisan vendor:publish –provider=”Encore\Admin\AdminServiceProvider”
    php artisan admin:install

  • php artisan admin:installで、下記エラーが出たので調査

    Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] Connection refused

  • MySQLの接続情報(.env)を修正(https://nobuhiroharada.com/2018/07/21/laravel-laradock-mysql-refused/)

    DB_HOST=127.0.0.1

    DB_HOST=mysql

  • 下記エラーが出たので調査

    Illuminate\Database\QueryException : SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

  • MySQLの認証方式の変更(https://qiita.com/shunichi_com/items/9b09c5949233b88b9a4a)

    ./docker-compose exec mysql bash
    # mysql -u root -p
    パスワード:root
    mysql> SELECT user, host, plugin FROM mysql.user;
    認証方式をcaching_sha2_passwordからmysql_native_passwordに変更
    mysql> ALTER USER ‘default’@’%’ IDENTIFIED WITH mysql_native_password BY ‘secret’;
    mysql> \q
    # exit
    sudo vi mysql/my.cnf
    [mysqld]内に下記を追加
    default_authentication_plugin= mysql_native_password

  • 再度、php artisan admin:installを実行

    php artisan admin:install

    Nothing to migrate.
    Database seeding completed successfully.
    Admin directory was created: /app/Admin
    HomeController file was created: /app/Admin/Controllers/HomeController.php
    AuthController file was created: /app/Admin/Controllers/AuthController.php
    ExampleController file was created: /app/Admin/Controllers/ExampleController.php
    Bootstrap file was created: /app/Admin/bootstrap.php
    Routes file was created: /app/Admin/routes.php

  • こうなればOK。
  • さらにLaravel-Adminの動作確認。下記を開いて、admin/adminでログインできればOK。

    http://192.168.23.3/admin/auth/login

  • 以上

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

 

 

 

 

 

 

 

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