Kịch bản ansible-playbook được gọi với qua trong hiệp phụ var:Ansible set_fact không làm thay đổi giá trị biến
-e my_var=init_value
Sau đó, trong vai trò một mã giá trị có nghĩa vụ phải thay đổi thông qua cuộc gọi set_fact (giá trị other_var biến là "new_value"):
set_fact: my_var: {{ other_var }}
Điều này dẫn đến một kết quả đẹp cho là xác nhận thay đổi:
{"ansible facts": {"my_var": "new_value"}}
Tuy nhiên vang vọng biến sau khi thay đổi nó cho thấy những giá trị cũ:
echo {{ my_var }}
-> "echo init_value"
Để thêm vào đó, khi tôi đặt hai biến trong ví dụ trên:
set_fact: my_var: {{ other_var }}
set_fact: new_var: {{ other_var }}
Các new_var được thiết lập đúng cách.
Biến có một cách nào đó không thay đổi được không? Làm thế nào để sử dụng set_fact để cập nhật giá trị của biến?
Cảm ơn bạn đã trả lời, tôi tin rằng tôi đã giải quyết nó tương tự như bạn đề xuất: Tôi đã xác định một vai trò mới, với tập hợp các sự kiện, là sự phụ thuộc vào nhiệm vụ muốn tùy chỉnh các giá trị. Nhờ đó, hai vai trò có thể sử dụng lại mã vai trò thứ ba, chỉ thay đổi giá trị. – hauron
Tôi cũng sẽ chấp nhận câu trả lời này vì nó mô tả lý do tại sao "thực tế" là bất biến, mặc dù thứ tự các hoạt động cho thấy nó có thể là. – hauron
Cảm ơn bạn đã giải thích, khía cạnh này của Ansible khá là khó hiểu - ưu tiên là chìa khóa ở đây. – RichVel