zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

Rocket.Chatのバージョンアップ作業メモ

zuntan02.hateblo.jp
こちらで構築したRocket.Chatのバージョンアップメモ

【作業概要】

パッケージをDLして展開して配置するだけ。

【作業メモ】

# 0.47→0.49の場合
# Rocket.Chat本体の最新版取得と展開
cd /usr/local/src
curl -o rocket.chat.tgz -L https://rocket.chat/releases/latest/download
tar xvzf rocket.chat.tgz

# サービス停止
systemctl stop mongod
systemctl stop rocketchat

# ディレクトリごと差し替え
cd /opt
mv rocket.chat/ rocket.chat_bkup
mv /usr/local/src/bundle /opt/rocket.chat

# directoryの所有者を実行ユーザ「rocketchat」に変更
chown -R rocketchat:rocketchat  /opt/rocket.chat

# パッケージのディレクトリにて、npm installでnode.jsに必要なpackageをインストールする
cd /opt/rocket.chat/programs/server/
npm install

# サービス再開
systemctl start mongod
systemctl start rocketchat

# 起動確認
systemctl status rocketchat

Collabora OnlineとNextcloudの連携

■基礎情報
Collabora Online
Google docsのように、Webブラウザ上で直接excelシートなどを編集できるもの。
オフィスソフトの機能すべてを代替できるようなものではないが、閲覧の気楽さは大きい。
f:id:zuntan02:20170120185308p:plain
↓こちらでDockerイメージで配布されている
https://nextcloud.com/collaboraonline/nextcloud.com


■インストールと設定
zuntan02.hateblo.jp
上記で構築したNextCloud環境に引き続き追加していきます。

dockerのインストール・起動
yum install docker
service docker start
chkconfig docker on

# Collabora Online serverの取得
docker pull collabora/code

# 実行
docker run -t -d -p 9980:9980 -e "domain=hoge.fuga" --cap-add MKNOD collabora/code
nginxでリバースプロキシ設定

/etc/nginx/conf.d/hoge.fuga.conf
→locationに以下を追加

    # for Collabora-online
    # static files
    location ^~ /loleaflet {
        proxy_pass https://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # WOPI discovery URL
    location ^~ /hosting/discovery {
        proxy_pass https://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # websockets, download, presentation and image upload
    location ^~ /lool {
        proxy_pass https://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
    }

Nextcloud管理画面でCollabora Onlineを有効にする

f:id:zuntan02:20170120190538p:plain
管理画面WebUIの左上[管理▼]-[+アプリ]-[Office&テキスト]-Collabora Online -[有効にする]
→管理画面の左ペインに[Collabora Online]が出てくるので、
 コラボラオンラインサーバー:https://hoge.fuga:443 として登録

ファイル一覧よりexcelなどを開き、編集、上書きできることを確認

【AWS】Nextcloud環境をAmazonLinuxに構築

■基礎情報

Nextcloud
Dropbox的なクラウドストレージを作成できるツール。以前デファクトスタンダードだったownCloudから派生したもの。
Webブラウザ経由でのアクセスのほか、Windows/OSX/Android/iPhone用にクライアントアプリが公開されている。
www.webprofessional.jp

【今回の作業概要】

AWS EC2のAmazonLinuxにNextcloudをインストール

【インストール手順】

AmazonLinuxに以下の手順でインストールしていきます。

MySQL
# インストール
yum install -y mysql56-server.x86_64 mysql56-devel.x86_64 mysql56.x86_64

# 起動
/etc/init.d/mysqld start

# 初期設定
/usr/bin/mysql_secure_installation

# Set root password? [Y/n]
New password: <MySQLのrootパスワード>
あとは初期値のままで抜ける。

# 自動起動
chkconfig mysqld on
chkconfig --list mysqld
Nginx
yum install nginx

# 自動起動確認
chkconfig nginx on
chkconfig --list nginx

SSLが推奨されているので、SSL証明書を用意しておきます。

php
# 必要となるモジュールをまとめてインストールする
yum install memcached memcached-devel
yum install php56 php56-devel php56-fpm php56-gd php56-mbstring php56-mcrypt php56-mysqlnd php56-pdo php56-pecl-memcached php-pecl-apcu php56-imagick php56-xml

# 設定ファイルで timezone 設定
cp -p /etc/php.ini /etc/php.ini.org
続きを読む

改ざん検知ツールAIDEメモ

【やったこと】

・CentOS6 にaideをインストールして初期動作確認
・問題があればメールで通知

【作業手順】

インストール
yum -y install aide

→aide.x86_64 0:0.14-8.el6

初期化
aide --init

→これが結構時間がかかる。仮想マシンとかだと5分くらい
→### AIDE database at /var/lib/aide/aide.db.new.gz initialized.

生成されたデータベースファイルを比較対象のデータベースファイルとする
cp -f /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
検査
aide --check

→AIDE found differences between database and filesystem!!(以下略)
→常に更新されるようなファイルが出てしまっている。

# 除外設定

vi /etc/aide.conf

→いったん全部対象外にして、改ざん検知したいフォルダだけを対象にするのが良さそう

# アップデート(--check と --init が同時に実行される)

aide --update

# 生成されたデータベースファイルを比較対象のデータベースファイルとする(上書き)

cp -f /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

Updateの自動化&AIDEで改ざんを検知した場合のアラートメール

こちらよりコピペ

echo '#!/bin/bash

MAILTO=hogehoge@fugafuga.com
LOGFILE=/var/log/aide/aide.log
AIDEDIR=/var/lib/aide
/usr/sbin/aide  -u > $LOGFILE
cp $AIDEDIR/aide.db.new.gz $AIDEDIR/aide.db.gz
x=$(grep "Looks okay" $LOGFILE | wc -l)
if [ $x -eq 1 ]
then
  echo "All Systems Look OK" | /bin/mail -s "AIDE OK" $MAILTO
else
  echo "$(egrep "added|changed|removed" $LOGFILE)" | /bin/mail -s "AIDE DETECTED CHANGES" $MAILTO
fi
exit
' > /usr/local/bin/aide.sh

chmod +x /usr/local/bin/aide.sh

→crontabに以下のようにして設置

0 0 * * * /usr/local/bin/aide.sh > /dev/null

S3のディレクトリ(prefix)を削除する(aws s3 rm メモ)

【経緯】

S3のディレクトリ(プレフィックス)を配下のオブジェクトごと一括で削除したかったのだけど、こちらによればディレクトリ以下のオブジェクトをすべて削除する必要があるとのこと。
一年分のログが入っててマネコンのWebUIでは消せないなーと思ったのでAWS CLIのs3コマンドで以下のようにして消したメモ。

【実施】

ディレクトリ(プレフィックス)確認

aws s3 ls s3://hogehoge-logs/
→プレフィックスが一覧できる
   PRE prefix1/
   PRE prefix2/
   PRE prefix3/

aws s3 ls s3://hogehoge-logs/prefix1/
→中身が確認できる

ファイル(オブジェクト)削除

ディレクトリ(プレフィックス)を中身ごと全部消す
aws s3 rm s3://hogehoge-logs/prefix1 --recursive
ディレクトリ(プレフィックス)の中身だけを全部消す(プレフィックスは残す)
aws s3 rm s3://hogehoge-logs/prefix1/ --recursive
条件にマッチするファイルのみ消す

# 例:*201612*を含むファイルのみ対象
# --excludeでまず全てを除外、除外されたファイルの中から--includeで許可。--recursiveで再帰的に。

# dryrunで削除対象を確認
aws s3 rm s3://hogehoge-logs/prefix1/ -exclude '*' --include '*201612*' --recursive --dryrun
# 実施
aws s3 rm s3://hogehoge-logs/prefix1/ -exclude '*' --include '*201612*' --recursive

【BootCamp】無料のツール”Clonezilla”でMacのBootCampディスク(macOS+Windows10)をクローンする(ディスク換装)

【まとめ】

MacBookProでBootCamp環境を構築している場合のディスクの差し替え(既存の容量より大容量への換装)の場合、「Winclone5」(有料)がなくても、フリーの定番ツール「Clonezilla」でクローンが行えた。キモはClonezillaでのリストア時にエキスパートモードで「-j1」オプションを有効にすること。

★201807追記★
この手順では別途バックアップを取るためのHDDが必要です。手元にそのようなものがなく、あらたに購入するくらいならディスククローン機を購入したほうが圧倒的に早い&確実です。以下の機種でBootcamp化したディスクのHDD→SSD引っ越しはサクッとできました。

【経緯】

MacBookProのOSX+BootCamp(Windows10)環境について、HDD→SSDに差し替えることになった。
SSDに付属していたクローニングツール(Acronis True Image HD)でディスク全体をクローンしてみたところ、OSXは起動できたものの、起動ディスクをWindows10とした場合ブートせず、ハマった。

こういう時は鉄板のClonezilla(http://clonezilla.org/downloads.php)(2.5.0-5)を利用してみたところ、やっぱりOSXは戻るんだけどWindowsは起動してこない。3連休をドブに捨てて完全にお手上げ。あきらめてWinclone5を買うか……と思って窓に置いた加湿器を強くしてる午前2時、以下の情報に出会った。

www.youtube.com

※サイトがなくなってたので似たような動画に差し替えました。上記動画の4:40あたりがキモ

【作業詳細】

1)Clonezillaでオリジナルディスクからディスクイメージを取得するときは初心者モードで普通に全体をイメージ化
2)イメージからリストアするときはエキスパートモードで
 ・「-j1」オプション(リストア後にMBR書き込み)にチェックを入れる。
 ・「-e1」はoffに(これは不要かも。案内動画でoffにされていたので倣った)
  あとはデフォルトのままでリストア実行……

であっけなくイメージからの復元→Windows10起動ができた。OSのライセンス認証も問題ないようだ。OSX側も特に問題なし。

※ちなみに今回500GB→750GBへの差し替えだったのだけど、Windows10が起動したら
[管理ツール]-[コンピュータの管理]-[ディスクの管理]-[ボリュームの拡張]
Windows領域を拡張できた。

しばらく運用してみて問題あったら追記しますが、いやー、今回はハマった……