Tôi muốn chạy một tác vụ cụ thể chỉ khi một cờ được đưa ra trong dòng lệnh. Ví dụ, tôi muốn chạy lệnh ansible-playbook như sau: --extra-vars "composer-install=true"
. Tôi bằng cách nào đó sẽ cần một nhiệm vụ kiểm tra nếu biến số composer-install
được đặt, và nếu được đặt và bằng true, hãy chạy tác vụ đã cho chạy composer install
. Tôi không hoàn toàn chắc chắn làm thế nào để làm điều đó phần cuối cùng.Làm thế nào để thêm các biến tùy chọn trong dòng lệnh ansible và kiểm tra sự tồn tại của chúng trong playbook?
Trả lời
Lý do bạn gặp lỗi là vì bạn đang truy cập biến chưa bao giờ được đặt. Bạn dường như đang sử dụng sự tồn tại của extra-var như một dấu hiệu cho thấy bạn muốn composer install chạy (tức là bạn không bao giờ truyền --extra-vars = "composer-install = false"), vì vậy bạn có thể đi với is defined
:
- shell: composer install
when: composer-install is defined
Nhưng các biến có thể được truyền qua bộ lọc, có thể hữu ích đối với trường hợp này, bởi vì nó vẫn cho phép bạn vượt qua đúng/sai trong khi không xác định biến ở tất cả vẫn hoạt động:
- shell: composer install
when: composer-install|default(false)
Một số chi tiết khác về điều kiện có thể tìm thấy tại đây: http://docs.ansible.com/playbooks_conditionals.html
Các bộ lọc jinja2 là rất hữu ích cho nhiều hơn một lý do, vì vậy nhiều trên đó tại đây: http://docs.ansible.com/playbooks_variables.html#jinja2-filters
Và cuối cùng hoàn tất danh sách các built-in bộ lọc jinja2 đây: http://jinja.pocoo.org/docs/dev/templates/#builtin-filters
Tôi nghĩ bạn đang tìm kiếm when parameter.
- name: optional composer install
shell: composer install
when: composer-install
Thanks, điều này đã cho tôi đi đúng hướng. Chỉ cần làm những gì bạn đã làm kết quả trong một lỗi. Giải pháp là cũng thêm một phần "vars:" vào playbook và thêm biến 'composer-install', đặt nó thành" false ". Rõ ràng các biến dòng lệnh ghi đè lên các biến được đặt trong playbook. Chúc mừng. –
- 1. Làm thế nào tôi có thể chuyển biến sang playbook ansible trong dòng lệnh?
- 2. Override host biến Ansible playbook từ dòng lệnh
- 3. Làm thế nào để kiểm tra sự tồn tại của biến trong codeigniter (php)? newb question
- 4. Làm thế nào để chạy lệnh shell trong chế độ kiểm tra của ansible?
- 5. Kiểm tra xem dịch vụ có tồn tại với Ansible
- 6. Làm thế nào để kiểm tra sự tồn tại của một biến kịch bản phạm vi trong PowerShell?
- 7. biến ký trong vòng lặp with_items trong Ansible playbook
- 8. Làm cách nào để bỏ qua GUI trong ứng dụng MFC nếu các tùy chọn dòng lệnh tồn tại?
- 9. Làm thế nào để kiểm tra nếu bộ chọn tồn tại trong CasperJS?
- 10. Chỉ kiểm tra xem một dòng có tồn tại trong một tệp không (ansible)
- 11. Làm cách nào để kiểm tra sự tồn tại của một hàng trong SQLite bằng Python?
- 12. Làm cách nào để kiểm tra sự tồn tại của một biến trong môi trường của hàm?
- 13. Làm thế nào để kiểm tra nếu một biến tồn tại và đã được khởi tạo
- 14. Kiểm tra sự tồn tại của nhóm trong hdf5/C++
- 15. Chạy Playbook Ansible không có hàng tồn kho
- 16. cách kiểm tra sự tồn tại của bất kỳ tệp nào trong tập lệnh csh?
- 17. Kiểm tra sự tồn tại của bảng trong slick 3.0
- 18. truy cập biến lưu trữ hàng tồn kho trong playbook ansible
- 19. Ansible: Chèn dòng nếu không tồn tại
- 20. Làm cách nào để kiểm tra xem lệnh có tồn tại trong tập lệnh shell không?
- 21. file lặp, kiểm tra dòng sự tồn tại
- 22. Kiểm tra sự tồn tại của tập tin trong Julia
- 23. Kiểm tra sự tồn tại của tập tin Python - trừ khi tôi thêm lệnh in
- 24. Làm cách nào để triển khai các dll vào GAC của hệ thống và kiểm tra sự tồn tại của chúng trong quá trình khởi động chương trình?
- 25. Làm cách nào để kiểm tra sự tồn tại của đối tượng trong SQL Firebird?
- 26. Đầu ra lỗi sạch trong ansible-playbook
- 27. thêm tùy chọn fstab bằng Ansible
- 28. Ansible không tìm kiếm các module trong ./library cùng playbook
- 29. Có thể xác định các biến toàn cầu trong Playbook trong Ansible không?
- 30. kiểm tra sự tồn tại của thuộc tính
Cảm ơn bạn đã trả lời thông tin, ngay cả sau khi tôi đã chọn giải pháp khác làm câu trả lời! –
Trên thực tế, trong khi tôi ở đây, tôi có thể hỏi làm thế nào để sử dụng các bộ lọc jinja2 đúng cách để chuyển đổi từ chuỗi thành số nguyên và làm phép nhân? Ví dụ, tôi có một mẫu mà tôi muốn đặt một biến thành 'ansible_fact * 2' và ansible_fact cũng là một chuỗi. Tôi không thể tìm thấy nó trong tài liệu. –
Có bộ lọc "int" và dường như hoạt động (phải tự kiểm tra): - debug: msg = {{'2' | int * 2}} –