Im no estoy seguro Entiendo la ejecución condicional del Chef.Comprensión Chef only_if not_if
me gustaría hacer algo de ejecución condicional en función de si existe o no una base de datos en PostgreSQL
Así que aquí está mi ejemplo
execute "add_db" do
cwd "/tmp"
user "dbuser"
command "createdb -T template_postgis mydb"
not_if 'psql --list|grep mydb'
end
de reproducción psql --list|grep mydb
regresar lo que se esperaría si existe la db (la línea con la entrada dbname) y nada en absoluto si no es así.
Entonces, ¿cómo no_si solo evaluar eso? ¿Verdadero o falso? 1 o 0? ¿No devuelven todos los procesos 0 si tienen éxito?
¡Cualquier consejo sería muy apreciado!
Mi situación era un poco diferente, así que dejaré una nota aquí para futuros usuarios en una situación similar que aterrizaron aquí. Digamos que tiene un atributo 'node ['myattr'] = true', luego si escribe' only_if node ['myattr'] ', chef se quejará. Descubrí que debe adjuntar la declaración en llaves, es decir. 'only_if {node ['myattr']}' – apatrick