Tôi không chắc mình hiểu Chef thực hiện có điều kiện hay không.Hiểu Chef only_if not_if
Tôi muốn làm một số điều kiện thực hiện dựa trên việc hoặc không phải là một cơ sở dữ liệu tồn tại trong PostgreSQL
Vì vậy, đây là ví dụ của tôi
execute "add_db" do
cwd "/tmp"
user "dbuser"
command "createdb -T template_postgis mydb"
not_if 'psql --list|grep mydb'
end
Chạy psql --list|grep mydb
trả lại những gì bạn mong đợi nếu db tồn tại (dòng với mục nhập dbname) và không có gì cả nếu nó không.
Vậy làm thế nào để not_if chỉ đánh giá điều đó? Đúng hay sai? 1 hoặc 0? Không phải tất cả các quy trình đều trả về 0 nếu chúng thành công?
Anywho lời khuyên nào sẽ được đánh giá cao!
Tình huống của tôi có một chút khác biệt, vì vậy tôi sẽ để lại một lưu ý ở đây cho những người dùng tương lai trong một tình huống tương tự đã hạ cánh ở đây. Giả sử bạn có thuộc tính 'node ['myattr'] = true', thì nếu bạn viết' only_if node ['myattr'] ', đầu bếp sẽ phàn nàn. Tôi phát hiện ra rằng bạn cần phải kèm theo các tuyên bố trong dấu ngoặc nhọn, tức là. 'only_if {node ['myattr']}' – apatrick