Tôi đã có một cuốn từ điển với tên gọi khác nhau nhưbiến ký trong vòng lặp with_items trong Ansible playbook
vars:
images:
- foo
- bar
Không, tôi muốn kiểm kho và sau đó xây dựng hình ảnh Docker chỉ khi nguồn đã thay đổi. Kể từ khi nhận được nguồn und xây dựng hình ảnh là như nhau cho tất cả các mục trừ tên tôi tạo ra các nhiệm vụ với with_items: images
và cố gắng đăng ký kết quả với:
register: "{{ item }}"
và cũng đã cố gắng
register: "src_{{ item }}"
Sau đó, tôi đã thử các conditon sau đây
when: "{{ item }}|changed"
và
when: "{{ src_item }}|changed"
này luôn dẫn đến fatal: [piggy] => |changed expects a dictionary
Vậy làm thế nào tôi có thể đúng cách lưu các kết quả của các hoạt động trong tên biến dựa trên danh sách tôi lặp kết thúc?
Cập nhật: Tôi wold muốn có một cái gì đó như thế:
- 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
Bạn tham khảo tên hình ảnh từ kết quả như thế nào? –
@KenJ hai nhiệm vụ cuối cùng cho thấy điều đó. Nếu bạn có nghĩa là một cái gì đó khác plz xây dựng. Chạy nó và xem đầu ra. – Kashyap