Mam słownik z różnymi nazwami jakzmienne rejestru, w with_items pętli w ansibl playbook
vars:
images:
- foo
- bar
Nie chcę kasy repozytoriów, a potem budować obrazy Döcker tylko wtedy, gdy źródło nie zmieniło. Ponieważ coraz źródło und budowania wizerunku jest taka sama dla wszystkich przedmiotów z wyjątkiem nazwy utworzonego zadania z with_items: images
i próbować zarejestrować wynik z:
register: "{{ item }}"
a także próbował
register: "src_{{ item }}"
potem próbowałem następujące Conditon
when: "{{ item }}|changed"
i
when: "{{ src_item }}|changed"
to zawsze skutkuje fatal: [piggy] => |changed expects a dictionary
Więc jak mogę poprawnie zapisać wyniki operacji w nazwach zmiennych opartych na liście I iteracyjnego?
Aktualizacja: I wold lubią mieć coś takiego:
- hosts: all
vars:
images:
- foo
- bar
tasks:
- name: get src
git:
repo: [email protected]/repo.git
dest: /tmp/repo
register: "{{ item }}_src"
with_items: images
- name: build image
shell: "docker build -t repo ."
args:
chdir: /tmp/repo
when: "{{ item }}_src"|changed
register: "{{ item }}_image"
with_items: images
- name: push image
shell: "docker push repo"
when: "{{ item }}_image"|changed
with_items: images
Jak odnoszą się do nazw obrazów z wyników? –
@KenJ ostatnie dwa zadania pokazują, że. Jeśli chodziło ci o coś innego, to rozwinę to. Uruchom go i zobacz wynik. – Kashyap