开源软件名称(OpenSource Name):h-hirokawa/azure-mastodon-playbook开源软件地址(OpenSource Url):https://github.com/h-hirokawa/azure-mastodon-playbook开源编程语言(OpenSource Language):Shell 100.0%开源软件介绍(OpenSource Introduction):Azure上へのMastodonインスタンス構築Playbook - 実行手順解説I. Ansible環境準備Linux環境上にAnsibleをインストールし、Playbookを実行できる状態にする。 事前準備Linuxの稼働環境を用意し、シェルに接続する。 Vagrant を使うと、以下の手順で簡単にUbuntu 16.04環境を作ってログインすることが可能です。 mkdir ansible-handson; cd $_
vagrant init bento/ubuntu-16.04
vagrant up
vagrant ssh ログイン後は、ホストOSとファイルを共有できるように
1.当PlaybookをGithubからクローンまずは、以下の手順でGitをインストールしましょう。 Debian系(Ubuntu含む)の場合sudo apt-get update && sudo apt-get install -y git RedHat系の場合sudo yum install -y git 次に、インストールした git clone https://github.com/h-hirokawa/azure-mastodon-playbook.git
cd azure-mastodon-playbook 2. Ansibleをインストールするリポジトリに含まれている ./install_ansible.sh 中で ansible --version を実行してAnsibleのバージョンが表示されればインストールは成功です。 3. Ansible GalaxyからRoleをダウンロード今回のPlaybookでは各種ミドルウェア(Nginx, Postgresql, Redis)と言語環境(Ruby, Node.js)のセットアップに公式Role共有ポータル Ansible Galaxy で公開されていRoleを使っています。 必要なRoleの依存情報は requirements.yml に記述されており、このファイルを使って以下のようにコマンド一発でダウンロードすることができます。 ansible-galaxy install -r ./requirements.yml これでPlaybook実行のためのAnsible側の準備は整いました。 II. Azure CLIの設定次にPlaybookからAzureを操作する際に必要となる、Python製コマンドラインツール Azure CLI 2.0 をセットアップしていきます。 1. PlaybookからAzure CLIをインストールAnsibleではローカル環境の操作も行えるため、このAzure CLIのインストール手順もPlaybook化しています。 以下のようにPlaybookを走らせてみましょう。 ansible-playbook ./site.yml
ansible-playbook -K ./site.yml 以下のようなプロンプトが表示されますので、パスワードを入力してください。
ちなみに、今回のPlaybookはAzure CLIのインストールが完了した時点で実行失敗となってしまいますが、これは想定通りの動きです。 そのまま先に進んでいきましょう。 2. Azure AD上にService Principalを作成上段のPlaybook実行時の出力を見ると、下の方に以下のような部分が見つけられます
出力されているメッセージ通り、Service Principal(アプリケーションからAzureを操作するための認証ID的なもの、参考資料)がAzure AD上に未登録であるためのエラーです。 Service Principle作成のためには、Azure CLIから各ユーザー・アカウントでログインする必要があるのですが、このログインの際にブラウザ経由の処理が必要となってしまうため、ここでは一旦Playbook実行を中断し、手動対応が必要な手順を案内するようにしています。 まず、一つ目のコマンドを実行しましょう。 source ~/venv/azure-cli/bin/activate Azure CLIはVirtualenvという仕組みを使って、ホスト上のグローバルなPython環境とは隔離したスペースにインストールされていますが、上記のコマンドでそのVirtualenv環境の中に入ることができます。 次にログイン処理です。 az login コマンドを実行すると、
というような表示が出てきますので、ブラウザから https://aka.ms/devicelogin にアクセスし、認証コード( 最後に、 az ad sp create-for-rbac -n http://ansible-demo --role contributor > /vagrant/azure-mastodon-playbook/resources/azure-sp.json ( を実行して、Service Principleを作成すればここでの対応は完了です。
Service Principleの利用に必要なIDやパスワードは III. Playbook再実行 VM作成 ~ Mastodonインスタンス・セットアップService Principleの設定が済んでしまえば、あとはVM作成からVM内のセットアップまで、全てPlaybookが実行してくれます。 先ほどと同じように ansible-playbook ./site.yml を実行して、デプロイ完了までしばらく待ちましょう。 IV. SendGridアカウント作成デプロイ完了までにはある程度の時間がかかるので、その間にMastodonからメールを送信できるようにしていきましょう。 Azureではセキュリティの観点からVM上から直接メールを送信することができませんので、Azure上から簡単に無料アカウントを発行できるSendGridを使ってメールを送信できるようにしてみます。 詳細手順: https://docs.microsoft.com/ja-jp/azure/app-service-web/sendgrid-dotnet-how-to-send-email 1. Azure PortalからSendGridリソースを作成ブラウザでAzure Portal を開き、左メニューバー上部の「+」ボタンをクリック、検索ウィンドウに "SendGrid" と入力、「SendGrid Email Delivery」リソースを作成してください。 特に決まりはありませんが、名前は「MySendGrid」、リソースグループは新規作成で「SendGrid」などが良いでしょう。 Pricing tierは無料の「F1」を選択してください。 2. SendGridダッシュボードにログインリソースが作成できたら、ポータル画面から「MySendGrid」を開き、「すべての設定」→「Configurations」内の 次に、 https://app.sendgrid.com/login を開き、コピーした 3. APIキーを作成SendGridのダッシュボードに入ったら、左メニューバー下部の「Settings」→「API Keys」をクリックし、API Keys画面へ遷移、右上の「Create API Key」をクリックしましょう。 APIキー作成画面では、API Key Nameは「MastodonDemo」と入力、API Key Permissions は「Restricted Access」を選択し、「Mail Send」のバーの右端をクリックし「Full Access」状態にします。
ここで「Create & View」をクリックすると、作成完了画面にAPIキーが表示されます。
このAPIキーをコピーして、site.yml 中の68行目、 # 以下、ハンズオン用SMTPサーバ情報。
mastodon_smtp_server: smtp.sendgrid.net
mastodon_smtp_login: apikey
mastodon_smtp_password: ###ここにAPIキーをペーストする### V. 最終デプロイ + 動作確認ここまでの作業が完了したら、一旦、Playbook実行完了まで待ちましょう。
Playbook実行完了時点でMastodonは起動状態になっていますが、 ansible-playbook --tags=mastodon ./site.yml
デプロイが正常に完了すると、実行ログの終わりに以下のようなメッセージが表示されます。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论