サイズ: 5732
コメント:
|
サイズ: 5956
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 10: | 行 10: |
* 今回、そんなライトウェイトな要求に対してGitHubで回す&自動デプロイを実施するための仕組みを作ってみた。 | * 今回、そんなライトウェイトな要求に対して!GitHubで回す&自動デプロイを実施するための仕組みを作ってみた。 |
行 30: | 行 30: |
* GitHubに対して以下の設定を行う。 | * !GitHubに対して以下の設定を行う。 |
行 104: | 行 104: |
sudo ssh-keygen -t ssh-ed25519 -C root@`hostname` -N "" -f /root/.ssh/id_ed25519 | |
行 105: | 行 106: |
以下の点に注意すること。 * `root` 鍵が必要とするため注意。 * パスフレーズの設定は行わない。 |
GitHubで回すWebサイト制作
- 思えば、Webサイト制作の現場は、下記のような移り変わりであった気がする。
- エンジニアが作業した(場合によってはHTMLも書く)。
- デザイナーさんが作業するようになった(ちょっとはサーバー側の事情も考慮してくれる)。
- 既存のデザインに対して営業さんがちょこっと修正するようになった(今回の動機)。
- エンジニア・デザイナーさんであれば、FTP(今時はSFTP/SCP)使ってサーバーにアップロードしてくれた。あるいは強制できた。
- 流石に営業さんにそういうツールを使ってもらうのは通じず。
そのために、CSM(Content Management System)導入することもしばしば。
- しかし世の中にはもっとカジュアルにWebサイト運用(HTML一枚程度)したいこともしばしば。
今回、そんなライトウェイトな要求に対してGitHubで回す&自動デプロイを実施するための仕組みを作ってみた。
検証環境
- 下記ソフトウェアの利用を前提に検証を実施した。いずれも現時点で最新のリリースに基づいて検証しているが、ある程度古い環境、より新しい環境でも問題無いと思われる。
- OSについては古いOS(CentOS6等)ではこの手順では実施できない点に注意。
- 上記以外の環境では、以下の点に相違が発生する。当該環境に応じて読み替えたし。
- インストール方法
- インストールされるディレクトリ
- 逆に以下の点は参考にできる。
- 設定パラメータとその意味
- 運用事例
用途 |
ソフトウェア名 |
バージョン番号 |
備考 |
OS |
CentOS 7 |
7.7.1908 |
SELinuxは有効とする |
Webサーバー |
Apache 2.4 |
2.4.41 |
|
Webフック |
2.6.10 |
検証目標
GitHubに対して以下の設定を行う。
- WebフックのURLの指定
- 秘密鍵の指定
- デプロイ用のSSH鍵の設置
- 上記設定のためにサーバー側のセットアップを行う。
- もちろんWebフックを受けて実際にデプロイを実施する。
- HTTPSオンリーサイトとしてHTTPでの運用は行わない。
ミドルウェアの初期セットアップ
OS
基本的なセットアップは実施済みであることとする。
ファイアウォール設定
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
Apache
sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum -y install httpd24u httpd24u-tools
/etc/httpd/conf/httpd.conf
ProxyPass /hooks/ http://localhost:9000/hooks/
<Proxy *>
Require all granted
</Proxy>
Webhook
sudo yum -y install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo systemctl reboot
sudo snap install webhook
※スナップクラフトの有効化のために一度再起動しておくこと。
/etc/systemd/system/snap.webhook.webhook.service
※注意※
1 --- /etc/systemd/system/snap.webhook.webhook.service.orig 2019-10-04 15:38:24.368772102 +0900
2 +++ /etc/systemd/system/snap.webhook.webhook.service 2019-10-06 04:51:03.366711591 +0900
3 @@ -7,7 +7,8 @@
4 X-Snappy=yes
5
6 [Service]
7 -ExecStart=/usr/bin/snap run webhook
8 +EnvironmentFile=-/etc/sysconfig/webhook
9 +ExecStart=/usr/bin/snap run webhook $OPTIONS
10 SyslogIdentifier=webhook.webhook
11 Restart=on-abnormal
12 WorkingDirectory=/var/snap/webhook/2
webhook起動のための設定オプションの指定ができなかったので、/etc/sysconfig/webhookを参照するように改変してみた。
この変更は更新(snap refresh)すると上書きされる可能性があるので注意。
またこの変更実施直後は systemctl daemon-reload を実行すること。
/etc/sysconfig/webhook
OPTIONS="-hooks /etc/httpd/conf/hooks.yaml -hotreload -ip 127.0.0.1 -port 9000"
デプロイ用SSH鍵の準備
sudo ssh-keygen -t ssh-ed25519 -C root@`hostname` -N "" -f /root/.ssh/id_ed25519
以下の点に注意すること。
root 鍵が必要とするため注意。
- パスフレーズの設定は行わない。