bitintheskud.ansible-role-ecs-agent
CentOS ECS エージェント Ansible ロール
このロールは、標準の CentOS 7 ホスト上で ECS コンテナエージェントを設定することを可能にします。
要件
- Ansible 2.2+
- CentOS 7.4.1708 でテスト済み
ロール変数
詳細については、次を参照してください:
http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html
ecs_agent_loglevel
:ECS_LOGLEVEL
(デフォルト: info)ecs_agent_cluster_name
:ECS_CLUSTER
(デフォルト: default)ecs_agent_enable_iam_role
:ECS_ENABLE_TASK_IAM_ROLE
(デフォルト: true)ecs_agent_enable_task_iam_role_network_host
:ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST
(デフォルト: true)ecs_agent_reserved_ports
:ECS_RESERVED_PORTS
(デフォルト: "[22, 2375, 2376, 51678]")ecs_agent_container_stop_timeout
:ECS_CONTAINER_STOP_TIMEOUT
(デフォルト: 30s)ecs_agent_auth_type
:ECS_ENGINE_AUTH_TYPE
(デフォルト: "")ecs_agent_auth_data
:ECS_ENGINE_AUTH_DATA
(デフォルト: "")ecs_agent_data_dir
:ECS_DATADIR
(デフォルト: "/data")ecs_agent_log_file
:ECS_LOGFILE
(デフォルト: "/log/ecs_agent.log")
依存関係
Docker をインストールして実行する必要があります。
次を参照:
注意事項
このロールは、ドキュメントに従って AWS ECS エージェントを設定し、iptables ルールを追加します。ただし、このロールは iptables ルールを保存する処理(iptables-save
や他の手段を通じて)を行わないことに注意してください。再起動後もルールを保持したい場合は、このロール以外で処理を行う必要があります。
サンプルプレイブック
---
- name: AWS ECS エージェント プレイブック
hosts: all
become: yes
vars:
- ecs_agent_cluster_name: MyClusterName
roles:
- ansible-role-ecs-agent
次のバージョンでの改善点
- Travis ビルドの追加。
- ログドライバのサポートを追加。詳しくは: https://github.com/open-guides/og-aws#ecs-tips
- クリーンアップオプションのサポートを追加:
ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION この変数は、停止したタスクに属するコンテナを削除する前に待機する時間を指定します。イメージのクリーンアップ処理は、参照しているコンテナが存在する限りイメージを削除できません。どのコンテナからも参照されていないイメージは、クリーンアップ候補となります。デフォルトでは、このパラメータは 3 時間に設定されていますが、アプリケーションに応じて 1 分まで短縮できます。
ECS_DISABLE_IMAGE_CLEANUP この変数を true に設定すると、コンテナインスタンスでの自動イメージクリーンアップが無効になり、イメージは自動的に削除されません。
ECS_IMAGE_CLEANUP_INTERVAL この変数は、自動イメージクリーンアッププロセスが削除するイメージを確認する頻度を指定します。デフォルトは 30 分ですが、より頻繁にイメージを削除する場合は 10 分まで短縮できます。
ECS_IMAGE_MINIMUM_CLEANUP_AGE この変数は、イメージがプルされてから削除候補となるまでの最小時間を指定します。これは、最近プルされたイメージのクリーンアップを防ぐために使用されます。デフォルトは 1 時間です。
ECS_NUM_IMAGES_DELETE_PER_CYCLE この変数は、単一のクリーンアップサイクル中に削除できるイメージの数を指定します。デフォルトは 5 で、最小は 1 です。
ライセンス
MITライセンスのもとでライセンスされています。詳細は LICENSE ファイルを参照してください。