.ebextensionsを実際に設定してみてイメージをつかんでいきたいと思います!!
やること
.ebextensionsを利用してElastic Beanstalkで構築されるEC2インスタンスに対し下記設定を行う。
- パッケージインストール
- グループ作成
- ユーザ作成
- bashコマンド実行
環境
下記で作成したものを利用
amegaeru.hatenablog.jp
実践!
1.configファイルを作成
下記内容でtest.configファイルを作成
### パッケージ(packages) ### packages: yum: docker: ['18.03.1ce-3.amzn2.x86_64'] ## versionは[$ yum --showduplicates search docker]で確認 ## パッケージ名が[docker-18.03.1ce-3.amzn2.x86_64]の場合、[docker-]が自動で付与されるため、以降の18.~を記載する必要がある。 dnsmasq: [] ## 空白の場合、最新バージョンをインストールする形になる。 ### グループ(groups) ### groups: groupOne: {} ## 空白の場合、gidはランダムで付与される groupTwo: gid: "45" ### ユーザ(users) ### users: myuser: groups: - groupOne - groupTwo uid: "50" homeDir: "/tmp" ### コマンド(commands) ### commands: command1: command: echo "test1" >> /tmp/test1.txt command2: command: touch /tmp/test2.txt
2.アプリケーションへconfigファイルを組み込み
2-1.php.zipを解凍
2-2..ebextensions配下に作成したtest.configファイルをコピー
2-3.phpフォルダの中身をZip圧縮
◆Zipファイルの構成 php.zip ├ .ebextensions │ ├ logging.config │ └ test.config ├ cron.yaml ├ EBSampleApp-PHP.iml ├ index.php ├ logo_aws_reduced.gif ├ scheduled.php └ styles.css
3.アプリケーションをデプロイ
3-1.[環境]-[sample-env]-ナビゲーションペインから[アプリケーションバージョン]
3-2.[アップロード]
3-3.アプリケーションバージョンをアップロードが表示されたら下記を入力
・バージョンラベル:3.0
・説明:空白
・アプリケーションをアップロード:作成したZipファイルを選択
3-4.[アップロード]をクリック
3-5.バージョンラベルが[3.0]のアプリケーションにチェックを入れる
3-6.[アクション]-[デプロイ]
3-7.アプリケーションバージョンをデプロイが表示されたら下記を入力
・環境:sample-env
3-8.[デプロイ]
※ヘルスがDegradedになる場合、EC2インスタンスへ接続し下記コマンドでチェック
$ cat /var/log/eb-engine.log $ cat /var/log/cfn-init.log
4.動作確認
4-1.作成されたEC2インスタンスへSSH接続
4-2.下記を実行し設定が反映されていることを確認
$ yum list installed | grep docker docker.x86_64 18.03.1ce-3.amzn2 @amzn2extra-docker $ yum list installed | grep dnsmasq dnsmasq.x86_64 2.76-16.amzn2.1.3 @amzn2-core $ cat /etc/passwd | grep myuser myuser:x:50:893::/tmp:/sbin/nologin $ cat /etc/group | grep groupOne groupOne:x:894:myuser $ cat /etc/group | grep groupTwo groupTwo:x:45:myuser $ cat /tmp/test1.txt test1 $ cat /tmp/test2.txt [空白]
感想
パッケージインストールのバージョン設定が苦戦した。。( ;∀;)