開発をしていると普通はdevelopmentとproductionみたいな感じをするわけで。
もちろんそうするとElastic Beanstalkも環境を二つ用意するけど、ソースは共通なわけで。
だけどソースが共通であるとdevelopmentだけにbasic認証をかけるというのが難しくなってくる。
なので今回はそれを解決するために、.ebextensionsにproject.configをおいてやってみよう的なお話をば。
files: "/tmp/deployment/create_basic_auth.sh": mode: "000755" content: | if [ "$RACK_ENV" == "development" ]; then DIR="\\nOptions FollowSymLinks\\nAllowOverride All\\nDirectoryIndex index.html index.php\\nAuthUserFile /etc/httpd/.htpasswd\\nAuthName \"Please enter your ID and password\"\\nAuthType Basic\\nRequire valid-user\\n " sed -i -e "s|#### End of AWS Settings ####|$DIR|" /etc/httpd/conf/httpd.conf fi container_commands: 01create_htpasswd: command: "htpasswd -nb username password > /etc/httpd/.htpasswd" 02ifdevelopment: command: ". /tmp/deployment/create_basic_auth.sh" 03ifdevelopment: command: "sudo service httpd restart"
とりあえずやっていることとしては、http.confを上書きしてbasic認証を作るシェルスクリプトを作成。
.htpasswdをコマンドから作成。
シェルスクリプトを走らせる。
サーバの再起動。
ってな感じ。
ちなみにdevelopmentかどうかを判断するために、elastic beanstalkのソフトウェア設定 > 環境プロパティにRACK_ENVというのを入れている。
これでdevelopment環境の場合はbasic認証がかかるので大丈夫だよ的なみたいな。
0 件のコメント:
コメントを投稿