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の利用を開始して下さい

Windows10でVirtualBox上の仮想マシンが動かなくなってしまった時

VirtualBox上の仮想マシンが起動後数秒でハングアップするようになってしまいました(正確にはVirtualBox InterfaceがBusyに)。

私の環境だけかも知れませんが、解決方法が見付かりましたので残しておきます。

Hyper-V Virtual Ethernet Adapterが残っていませんか?

当該PCは(開発機と事務用PCを共用しているため)Docker(Hyper-V下)とVirtualBox間を行ったり来たりで使っています。

OS起動時にタスクマネージャのパフォーマンスタブを開いていたところ、イーサネットアダプタが数秒おきに増えたり減ったりしているのに気付きました。

Hyper-Vは停めている(外している)筈なのに、何故かHyper-V Virtual Ethernet Adapterが存在しています。

処置

Hyper-Vが無効化状態で、Hyper-V Virtual Ethernet Adapterが残っている場合は、次の手順で試してみてください。

  1. Vagrant等が入っていたらアンインストールしてOSを再起動
  2. VirtualBoxが入っていたらアンインストールしてOSを再起動
  3. デバイスマネージャーのネットワークアダプターからHyper-V Virtual Ethernet Adapterを削除
  4. OSを再起動
  5. 念のため、管理者権限のコマンドプロンプトから
    bcdedit /set hypervisorlaunchtype off
  6. OSを再起動
  7. VirtualBoxをインストール
  8. 念のためOSを再起動
  9. Alpineなどの軽い物で、VMを起動できるか確認

19H1後の現象

Windows 10 May 2019 Update 後に、次のようなエラーでVMが起動しなくなりました。

VMSetError: Call to WHvSetupPartition failed: ERROR_SUCCESS (Last=0xc000000d/87)
VERR_NEM_VM_CREATE_FAILED

こちらについても上記処置で対応できました。