Azureにアカウントを作ってRedmineを入れてみるテスト

Azureの無償枠の中にUbuntu 18.04な仮想サーバを作り、SendGrid経由でメールが発報できるようにし、Redmineを立ち上げてみました。

以下、その手順となります。

尚、SSH鍵認証でログインする場合は、事前に公開鍵を用意しておいて下さい。

Azureアカウント作成とポータルへのログイン

※アカウントをお持ちの場合は、この項はパスして下さい

Arureの入口に行き、適当なメアドでアカウントを作成して下さい。

作成後、そのアカウントでサインインし、Azureポータルにサインインして下さい。

リソースグループ作成

次の手順でリソースグループを作成して下さい。

  1. メイン画面左ペインの『リソースグループ』をクリック
  2. 『+追加』をクリック
  3. サブスクリプション欄で『無料試用版』を選択
  4. リソースグループ欄に作成するリソースグループ名を入力
  5. リージョン欄は『(アジア太平洋)東日本』などを選択
  6. 『確認及び作成』をクリック

仮想ネットワーク作成

次の手順で仮想ネットワークを作成して下さい。

  1. メイン画面左ペインの『仮想ネットワーク』をクリック
  2. 『+追加』をクリック
  3. 名前欄に適当な名前を入力
  4. アドレス空間欄に、利用するアドレス空間を入力
    (例:10.0.0.0/16)
  5. サブスクリプション欄で『無料試用版』を選択
  6. リソースグループ欄で先程作成したリソースグループ名を選択
  7. 場所欄は『(アジア太平洋)東日本』などを選択
  8. サブネットの名前は適当に入力
  9. サブネットのアドレス範囲は、先程のアドレス空間内のものを入力
    (例:10.0.0.0/24)

仮想マシン作成

次の手順で仮想マシンを作成して下さい。

  1. メイン画面左ペインの『Virtual Machines』をクリック
  2. 『+追加』をクリック
  3. サブスクリプション欄で『無料試用版』を選択
  4. リソースグループ欄で先程作成したリソースグループ名を選択
  5. 仮想マシン名に作成する仮想マシンの名前を入力
  6. 地域欄は『(アジア太平洋)東日本』などを選択
  7. イメージ欄は作成するOSを選択
    今回はUbuntu 18.04としました
  8. サイズは作成する仮想マシンのリソースを選択
    無償枠で使えるB1sが良いと思います
  9. 認証の種類を選択(パスワードまたはSSH公開キー)
    • パスワード認証の場合
      1. ユーザ名欄に、認証に使用するユーザ名を投入
        ユーザ名の右側にチェックが付くことを確認
      2. パスワード欄およびパスワードの確認欄に、上記ユーザで使用するパスワードを投入
        それぞれの欄の右側にチェックマークが付くことを確認
    • SSH効果キー認証の場合
      1. ユーザ名は認証に使用するユーザ名を投入
        ユーザ名の右側にチェックマークが付くことを確認
      2. SSH公開キー認証の場合SSH公開キーは別途用意したSSH公開鍵をペースト
        SSH公開キー欄の右側にチェックマークが付くことを確認
  10. 『次:ディスク』をクリック
  11. ディスクの種類を選択
    HDDで良いと思います
  12. 『次:ネットワーク』をクリック
  13. 仮想ネットワーク欄で、先程作成した仮想ネットワーク名を選択
  14. サブネット欄で、先程作成したサブネットを選択
  15. 『次:管理』をクリック
  16. 診断ストレージアカウントは表示されている物を使用
    表示されていない場合、『新規作成』をクリック、名前欄に名前を入力し、『OK』をクリック
  17. 『確認および作成』をクリック
  18. エラーがなければ仮想サーバが作成されますので、しばし待ちます
    AWSやGCPに比べると、デプロイや削除は待たされる感じです
  19. 作成した仮想マシン名の状態が『実行中』になればok

FireWallの設定

デフォルト状態では外部からの接続が出来ないため、FireWallの設定を行います。

  1. 作成した仮想マシン名をクリック
  2. 『設定≫ネットワーク』をクリック
  3. 『受信ポートの規則を追加する』をクリックし、ルールを追加
    自分のグローバルIP(私はCMANさん等で調べています)をソースに、22/tcp,80/tcp,443/tcpあたりを追加すればよいでしょう

仮想サーバの環境設定

以下の手順は、Ubuntu 18.04な仮想サーバにsshで接続し、rootに昇格しての作業しています。

  1. タイムゾーン設定等
    timedatectl set-timezone Asia/Tokyo
    apt update
    apt -y upgrade
  2. IPv6抑制
    # sysctlでのipv6抑止
    cat <<'__EOF__' | tee -a /etc/sysctl.d/70-disable-ipv6.conf
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    __EOF__
    # 反映
    sudo sysctl --system
    # スタートアップスクリプトでipv6抑止
    cat <<'__EOF__' | tee -a /etc/rc.local
    #!/bin/bash
    # /etc/rc.local
    # Load kernel variables from /etc/sysctl.d
    /etc/init.d/procps restart
    exit 0
    __EOF__
    # 実行権限を付与
    chmod 755 /etc/rc.local
  3. swap領域作成
    # swap領域作成
    fallocate -l 2G /swapfile
    chmod 600 /swapfile
    mkswap /swapfile
    swapon /swapfile
    echo "/swapfile none swap sw 0 0" >> /etc/fstab
  4. 一旦再起動
    # 一旦再起動
    shutdown -r now

仮想マシンからメールを発信する場合(Phase①)

Postfix設定を行います。

私はいつもこちらのお世話になっています。

Server World Postfix : インストール/設定2018

仮想マシンからメールを発信する場合(Phase②)

SendGridのアカウントが無い場合は、ここで作成します。既にお持ちの場合は、本項の1~11は飛ばして下さい。

  1. Azureコンソール上部の検索欄で、『sendgrid accounts』を検索します
  2. 『+追加』をクリック
  3. Name欄に適当な名前を入力
  4. Password欄とConfirm Password欄に適当なパスワードを入力
  5. サブスクリプション欄で『無料試用版』を選択
  6. リソースグループ欄で先程作成したリソースグループ名を選択
  7. Pricing tierで『Free』をクリック、『選択』をクリック
  8. Contact Informationで連絡先を入力し、『OK』をクリック
  9. 法律条項で『作成』をクリックすると、SendGridのアカウントが作成されます
  10. 作成されたSendGridの名前をクリック
  11. SettingペインのConfigurationsをクリック
  12. Username欄の右側のコピーアイコンをクリック
    先程投入したパスワードとともに、/etc/postfix/sasl_passwd に記録、DB化します
    # SendGrid用アカウントをpostfix側に指示
    cat <<'__EOF__' | tee -a vi /etc/postfix/sasl_passwd
    [smtp.sendgrid.net]:587 SendGrid画面でコピーしておいたUsername:そのときのパスワード
    __EOF__
    # sasl_passwdのDB化
    chmod 600 /etc/postfix/sasl_passwd
    postmap /etc/postfix/sasl_passwd

仮想マシンからメールを発信する場合(Phase③)

sasl_passwdをpostmapしたあとの作業です。

# PostfixでSendGridを利用する設定
cat <<'__EOF__' | tee -a /etc/postfix/main.cf
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tls_security_level = encrypt
header_size_limit = 4096000
relayhost = [smtp.sendgrid.net]:587
__EOF__
sytemctl restart postfix

bitnami Redmineのインストール

  1. bitnami Redmineのダウンロードページに移動
    https://bitnami.com/stack/redmine/installer
  2. Download for Linux 64-bitボタンを右クリックして、ダウンロードリンクを取得
  3. 仮想サーバの置き場所にダウンロード
    4.0.3-3の場合の例
    cd ~
    wget https://bitnami.com/redirect/to/554708/bitnami-redmine-4.0.3-3-linux-x64-installer.run
    chmod 744 ./bitnami-redmine-4.0.3-3-linux-x64-installer.run
  4. インストーラを実行します
    ./bitnami-redmine-4.0.3-3-linux-x64-installer.run

    あとはインストーラの指示通りに進めます

  5. インストールが完了するまで待ちます
    次の表示が出たら、Enterキーを押してRedmineを起動して下さい
    —————————————————————————-
    セットアップウィザードによる Bitnami Redmine Stack のインストールが完了しました。

    Redmine アプリケーション起動 [Y/n]:Y

    情報: Bitnami Redmine Stack については、ブラウザで
    http://127.0.0.1:80 にアクセスしてください。
    続けるには [Enter] キーを押してください :

  6. ブラウザで http://Azureから割り振られたグローバルIP/ にアクセスし、Redmineの利用を開始して下さい

LINEにメッセージが届いたら指定のメアドに通知する(その2)

はじめに

  • 先日ポストした『LINEにメッセージが届いたら指定のメアドに通知する』のその2となります。
  • LINE → IFTTT → Webhooks → Zapier → Gmail、の流れになります。
    前回は、LINE → IFTTT → Gmail、でした。
    Google から、『IFTTTとGmailの連携やめるよ』メールが届いたため、更新します。
  • 本TipsはAndroid専用です。
    iPhoneの場合、現物で試したわけではないのですが、Macがあれば次の方法で行けると思います。
    PushBulletのMac版が公開、iOSの通知をMacで受信可能&クリップボードも同期が可能に
  • 普通に検索で引っかかる、『メールが来たらLINEに通知』とは逆の、『LINEが来たらメールする』機能の実現です。
  • 動作タイミングは各構成要素のご機嫌次第です。
    通知が数時間遅延する、或いは全く届かない場合があります。
    あくまで、『無いよりはまし』程度の扱いにてお願いします。

今回の実装

LINE NEWS からメッセージが届いたら、設定したメールアドレスに通知する例を記します。最初は『LINE NEWS』で試したあと、実際に検知したい友達名に変更して下さい(IFTTT設定の9番と17番)。
本作業はWindows10なPC上で行いました。

Zapier側の設定

  1. Zapier にログイン
  2. 右上の、Make a Zap! をクリック
  3. Search hundreds of apps…webhooks と入力し、選択された Webhooks by Zapier をクリック
  4. Catch Hook をクリック
  5. Save + Continue をクリック
  6. リンク用のURLが表示されるので、コピーボタンを押して、URLをコピー、別に記録しておく
  7. 管理者権限の PowerShell 窓を開いて、
    Invoke-RestMethod -Uri "先程のURL" -Method Post -Body ( @{"value1"="LINE NEWS"} | ConvertTo-Json) -ContentType 'application/json'
    を実行
  8. 数秒待って、Ok, I did this をクリック
  9. Hook A と表示されたら、Continue をクリック
  10. Add a Step をクリック
  11. Action/Search をクリック
  12. Gmail を選択
  13. Send Email をクリック
  14. Save + Continue をクリック
  15. 使用する Gmail アカウントを選択して、Test をクリック、Success となったら、Save + Continue をクリック
  16. To 欄に、宛先のメアドを入力
  17. Subject 欄に、通知メールの題名を適当に入力
  18. Body 欄で、右側の+をクリック、value1 を選択、『から連絡がありました』と入力
  19. Continue をクリック
  20. テスト画面になるので、Send Test to Gmail をクリック
  21. 設定した通知先にメールが届いたら、Finish をクリック
  22. YOUR ZAP IS ON となっていれば、完了

IFTTT側の設定

  1. IFTTT にログイン
  2. My Applet に移動
  3. Applets タブを選択
  4. New Applet をクリック
  5. this をクリック
  6. Search services 欄に android device と入力し、選択されたサービスボタンをクリック
  7. Choose triggerNotification received from a specific app ボタンをクリック
  8. App nameLINE と入力
  9. Filter by notification keyword に『LINE NEWS』と入力
  10. Create trigger をクリック
  11. that をクリック
  12. Choose action service 欄に webhooks と入力し、選択されたサービスボタンをクリック
  13. Make a web request をクリック
  14. URL 欄に、先程コピーした Webhooks のURLをペースト
  15. MethodPOST を選択
  16. Content Typeapplication/json を選択
  17. Body 欄に
    {"value1":"LINE NEWS"}
    と入力
  18. Create action をクリック
  19. Review and finish 画面で、If Notification… の欄を、適当な名前に変更
  20. Finish をクリック

※Zapier の Gmail設定画面(Edit Template)で、+が表示されている各フィールドには、IFTTT から投げ付ける json の値が使えます。


2019.03.26
iPhone版についての記述を追加
2019.05.29
引っ掛ける友達名についての説明を更新

LINEにメッセージが届いたら指定のメアドに通知する

ご注意

  • 本TipsはAndroid専用です。
    iPhoneの場合、現物で試したわけではないのですが、Macがあれば次の方法で行けると思います。
    PushBulletのMac版が公開、iOSの通知をMacで受信可能&クリップボードも同期が可能に
  • 普通に検索で引っかかる、『メールが来たらLINEに通知』とは逆の、『LINEが来たらメールする』機能の実現です。
  • 動作タイミングは端末/LINE/IFTTTのご機嫌次第です。
    通知が数時間遅延する、或いは全く届かない場合があります。
    あくまで、『無いよりはまし』程度の扱いにてお願いします。

皆さん勤務中は私用スマホ(Android)をロッカーに入れてますよね?
そのため、家族からLINEが来ても気付きませんよね?
そうすると、怒られ心配されますよね?
と言うことで、特定の人からLINEメッセージが届いたら、指定のメールアドレスに通知してみます。


作り方

IFTTTのアカウント登録と、Gmail連携が済んでいるものとします。

this→Android Device
that→Gmail
で、次のように設定します。

App name→LINE
Filter by notification keyword→監視対象の友達名
To address→通知先メアド

以上となります。
連携サービスはslack等に差し替えても大丈夫かも知れません。


2019.03.22追記
Googleから、『IFTTTとGmail連携終了のお知らせ』が届きました。対応策確認後、本ポストを後程アップデートする予定です。

2019.03.25追記
アップデートした結果、行けそうなので、次のリンクで公開します。

2019.03.26追記
iPhone版についての記述を追加。