Skip to content

Latest commit

 

History

History
93 lines (72 loc) · 5.62 KB

README.md

File metadata and controls

93 lines (72 loc) · 5.62 KB

この ec-cube4_installer ってなに?

詳しく言えば、「EC-CUBE4の公式パッケージをUbuntu環境に導入する時短ansible-playbook 〜PostgreSQL/Nginx/Let's EncryptのSSL証明書とともに〜」です。

EC-CUBE環境を、公式サイトで案内されているDockerへのインストール (Docker Composeを使用してインストールする - < for EC-CUBE 4 Developers />) ではなくて、諸事情によりいわば直接の状態で構築したかったのです。そこでせっかくだからansible-playbookの形で構築手順を書いてみようと思いました。

動作確認を行った環境

項目 内容
EC-CUBE 4.2.1
サーバOS Ubuntu 22.04.2 LTS (amd64)
DBサーバ PostgreSQL 14.7 (Ubuntu 14.7-0ubuntu0.22.04.1)
WEBサーバ nginx/1.18.0
PHP 8.1.2-1ubuntu2.11
Certbot 2.3.0

※2023-03-06時点の情報です。

使い方

1. リポジトリをcloneして環境に合わせた設定を用意

git clone --depth=1 https://github.com/mah-jp/ec-cube4_installer
cd ec-cube4_installer
cp -a hosts_SAMPLE.txt hosts_HOGE.txt
vim hosts_HOGE.txt # 環境に合わせて内容を書き換えてください

2. ansible-playbookを順次適用

公開鍵認証でのSSHログインを可能にしたUbuntuサーバへ、下記のansible-playbookを1〜5まで適用していくと、PostgreSQL+Nginx+SSL証明書まで整ったEC-CUBE環境ができあがります。それなりの時短が達成できるかと思います。ansibleのベストプラクティスに乗っ取った作りではない点はご了承ください。

a. 1個ずつ確認しながら適用

  1. 次のようにplaybookの1番目を適用します
    # 1番目のplaybook実行例
    ansible-playbook -i ./hosts_HOGE.txt --diff --check --ask-become-pass ./tasks/sudo_1_setup-server.ansible.yml # まずは --check
    ansible-playbook -i ./hosts_HOGE.txt --diff         --ask-become-pass ./tasks/sudo_1_setup-server.ansible.yml # 次に本番実行
    
  2. 以降、2〜5番目まで実行を続けるとEC-CUBEウェブインストーラーでの初期設定が行える段階まで構築が完了します

b. まとめて適用

  1. playbookをまとめて本番適用します (Certbot実行中の待ち時間も含め、テストした環境だと6分7秒で完了しました)
    # --check を外してのいきなり本番実行☕
    time ansible-playbook -i ./hosts_HOGE.txt --diff --ask-become-pass \
    	./tasks/sudo_1_setup-server.ansible.yml \
    	./tasks/sudo_2_setup-certbot.ansible.yml \
    	./tasks/sudo_3_setup-nginx.ansible.yml \
    	./tasks/sudo_4_setup-postgresql.ansible.yml \
    	./tasks/sudo_5_install-eccube.ansible.yml
    (snip)
    real	6m7.091s
    user	0m28.867s
    sys	0m4.950s
    
  2. playbook適用が正常に終了したら、EC-CUBEウェブインストーラーでの初期設定を行ってください

3. 再初期化のときには

次のansible-playbookはPostgreSQLにセットアップした環境を初期化します。DB環境を作り直すときに使用します。

おまけ

ansible-player.shというシェルスクリプトを同梱しています。このスクリプトには、(1) ansibleに適用するinventoryファイルを環境変数HOSTS_SELECTで切り替える機能と、(2) 実行するansible-playbookファイルの選択を数値入力で行える機能があります。

  1. たとえば次の実行例では、「HOSTS_SELECT=SAMPLE」と指定してあるので、ansibleのinventoryファイルとして同じ階層にある「hosts_SAMPLE.txt」が使用されます
    $ HOSTS_SELECT=SAMPLE ./ansible-player.sh
    1) sudo_1_setup-server.ansible.yml
    2) sudo_2_setup-certbot.ansible.yml
    3) sudo_3_setup-nginx.ansible.yml
    4) sudo_4_setup-postgresql.ansible.yml
    5) sudo_5_install-eccube.ansible.yml
    6) sudo_6_switchenv-eccube.ansible.yml
    7) sudo_9_destroy-postgresql.ansible.yml
    8) QUIT
    #?
    
  2. このスクリプトを介してのplaybook実行は --check (dry-run) となるように設定しており基本的に安全です。playbookをいよいよ本番実行する時は、スクリプトが最後に標準出力するコマンド文字列をコピペして、端末画面に貼り付ければ実行可能です