Last active
December 31, 2015 02:49
-
-
Save m8rge/7923382 to your computer and use it in GitHub Desktop.
chef, будь он неладен
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Создание шаблона с sql созданием бд и пользователя | |
template "/var/tmp/getmail_create_tables.mysql" do | |
source "mysql/getmail.sql.erb" | |
mode "0600" | |
# только если пользователя бд нет | |
not_if "mysql -e \"\" -h localhost -P 3306 getmail" | |
# запускаем на выполнение | |
notifies :run, "execute[mysql_create_getmail_tables]", :immediately | |
end | |
execute "mysql_create_getmail_tables" do | |
command "/usr/bin/mysql -h localhost -P 3306 < /var/tmp/getmail_create_tables.mysql" | |
action :nothing | |
end | |
# Однако, в данном коде есть ошибка | |
# Да, первоначально ресурс template будет проверять условие not_if перед тем, как записать файл на диск | |
# Однако, после этого, если файл уже существует, chef проверит, не получится ли так, что он хочет записать идентичный файл | |
# Если хеш файла на диске и нового файла совпадают, то запись файла отменяется и notifies :run не происходит. | |
# А это не та логика, котоую мы хотим получить. | |
# Правится добавлением | |
# file "/var/tmp/getmail_create_tables.mysql" do | |
# action :delete | |
# end | |
# перед ресурсом template |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment