/ / Ansible EC2_tag_environment_production - amazon-ec2, ansibl

Ansible EC2_tag_environment_production - amazon-ec2, ansibl

Rozglądam się, jak odróżnić środowiska produkcyjne od scenicznych dzięki Ansible. Natknąłem się to dokumentacja.

Mam wrażenie, że Ansible ma zmienną podobną do ansible.hostname oznaczony etykietą ec2_tag_environment_production. Jednak gdy próbuję dodać to do mojego playbooka,to pomyłka! Nie mam nic przeciwko temu, że to pomyłka (mogę to naprawić), ale widzę, że to błąd w niewłaściwym playbooku. Na przykład, jeśli uruchomię poradnik skierowany do serwera scenicznego, spróbuje uruchomić zakładkę produkcji. Oto, na co składa się mój główny przewodnik:

   ---
- name: Running Production Playbook
include: production.yml
when: ec2_tag_environment_production = "production"

- name: Running Stage playbook
include: stage.yml
when: ec2_tag_environment_production = "staging"

Dodałem środowisko: inscenizacja | produkcja jako tag w AWS. Czy ktoś może mi powiedzieć, co należy zrobić, aby to naprawić?

Odpowiedzi:

2 dla odpowiedzi № 1

Skrypt inwentaryzacji dynamicznej EC2 dla pytań zadawanych przez Ansible dla hostów EC2. Jeśli host jest oznaczony tagiem environment, a następnie fakt ec2_tag_environment będzie dostępne dla tej instancji, a wartość tego faktu jest wartością znacznika w EC2.

W twoim przypadku:

---
- name: Running Production Playbook
include: production.yml
when: ec2_tag_environment == "production"

- name: Running Stage playbook
include: stage.yml
when: ec2_tag_environment == "staging"

Możesz jednak użyć dynamicznego:

- include: "{{ ec2_tag_environment }}.yml"