bitintheskud.ansible-role-ecs-agent
Rôle Ansible pour l'Agent ECS de CentOS
Ce rôle permet de configurer l'agent de conteneurs ECS sur des hôtes CentOS 7 standards.
Exigences
- Ansible 2.2+
- Testé sur CentOS 7.4.1708
Variables du Rôle
Pour plus d'informations, consultez :
http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html
ecs_agent_loglevel
:ECS_LOGLEVEL
(Par défaut : info)ecs_agent_cluster_name
:ECS_CLUSTER
(Par défaut : default)ecs_agent_enable_iam_role
:ECS_ENABLE_TASK_IAM_ROLE
(Par défaut : true)ecs_agent_enable_task_iam_role_network_host
:ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST
(Par défaut : true)ecs_agent_reserved_ports
:ECS_RESERVED_PORTS
(Par défaut : "[22, 2375, 2376, 51678]")ecs_agent_container_stop_timeout
:ECS_CONTAINER_STOP_TIMEOUT
(Par défaut : 30s)ecs_agent_auth_type
:ECS_ENGINE_AUTH_TYPE
(Par défaut : "")ecs_agent_auth_data
:ECS_ENGINE_AUTH_DATA
(Par défaut : "")ecs_agent_data_dir
:ECS_DATADIR
(Par défaut : "/data")ecs_agent_log_file
:ECS_LOGFILE
(Par défaut : "/log/ecs_agent.log")
Dépendances
Docker doit être installé et en cours d'exécution.
Voir :
Précautions
Ce rôle configure l'agent AWS ECS comme recommandé dans la documentation, y compris l'ajout de règles iptables. Cependant, gardez à l'esprit que ce rôle ne sauvegardera pas les règles iptables pour vous (via iptables-save
ou autres). Si vous souhaitez sauvegarder les règles iptables sur disque afin qu'elles survivent à un redémarrage et soient présentes sans exécution supplémentaire d'Ansible, vous devez le gérer en dehors de ce rôle.
Exemple de Playbook
---
- name: Playbook de l'Agent AWS ECS
hosts: all
become: yes
vars:
- ecs_agent_cluster_name: MyClusterName
roles:
- ansible-role-ecs-agent
Améliorations à prévoir dans la prochaine version
- Ajouter une construction travis.
- Ajouter le support pour le pilote de journalisation. Voir : https://github.com/open-guides/og-aws#ecs-tips
- Ajouter le support pour les options de nettoyage :
ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION Cette variable spécifie le temps à attendre avant de supprimer tous les conteneurs qui appartiennent à des tâches arrêtées. Le processus de nettoyage des images ne peut pas supprimer une image tant qu'il existe un conteneur qui la référence. Une fois que les images ne sont plus référencées par des conteneurs (arrêtés ou en cours d'exécution), alors l'image devient candidate au nettoyage. Par défaut, ce paramètre est fixé à 3 heures, mais vous pouvez réduire cette période à 1 minute, si cela est nécessaire pour votre application.
ECS_DISABLE_IMAGE_CLEANUP Si vous définissez cette variable sur true, alors le nettoyage automatique des images est désactivé sur votre instance de conteneur et aucune image n'est automatiquement supprimée.
ECS_IMAGE_CLEANUP_INTERVAL Cette variable spécifie à quelle fréquence le processus automatique de nettoyage des images doit vérifier les images à supprimer. La valeur par défaut est toutes les 30 minutes, mais vous pouvez réduire cette période à 10 minutes pour supprimer des images plus fréquemment.
ECS_IMAGE_MINIMUM_CLEANUP_AGE Cette variable spécifie le temps minimum entre le moment où une image a été récupérée et le moment où elle peut devenir candidate à la suppression. Ceci est utilisé pour éviter de nettoyer les images qui viennent juste d'être récupérées. La valeur par défaut est de 1 heure.
ECS_NUM_IMAGES_DELETE_PER_CYCLE Cette variable spécifie combien d'images peuvent être supprimées lors d'un cycle de nettoyage unique. La valeur par défaut est 5 et le minimum est 1.
License
Sous licence MIT. Voir le fichier LICENSE pour les détails.