J'essaie d'exécuter le cluster etcd dans docker via ansible.Comment lancer le cluster etcd dans docker en utilisant ansible?
J'utilise docker_container le module ansible et voici ce que j'ai:
- name: Run etcd KV node
docker_container:
name: "etcd0"
image: quay.io/coreos/etcd
network_mode: host
command: [ "/usr/local/bin/etcd", \
"-name etcd0", \
"-advertise-client-urls http://{{ ansible_default_ipv4['address'] }}:2379,http://{{ ansible_default_ipv4['address'] }}:4001", \
"-listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001", \
"-initial-advertise-peer-urls http://{{ ansible_default_ipv4['address'] }}:2380", \
"-initial-cluster etcd0=http://{{ ansible_default_ipv4['address'] }}:2380", \
"-initial-cluster-token etcd-cluster", \
"-listen-peer-urls http://0.0.0.0:2380", \
"-initial-cluster-state new" ]
Ce travail en mode simple, mais les troubles viennent avec plus de 1 nœud, car il est le paramètre ETCD -initial-cluster
qui doit contenir tous les nœuds, pour par exemple, en cas de 3 nœuds:
-initial-cluster etcd0=http://192.168.12.50:2380,etcd1=http://192.168.12.51:2380,etcd2=http://192.168.12.52:2380
Je ne sais pas comment faire une boucle à travers tous les nœuds et construire cette chaîne pour exécuter un conteneur de docker. C'est possible?
C'est vraiment ce dont j'avais besoin, merci! Juste une chose - je divise la tâche set_fact sur 2 parce qu'il est impossible d'utiliser simplement le fait déclaré dans le même set_fact. –
Oui, c'est vrai. ne l'a pas testé avant de poster. changé dans la réponse. –