Как скрипт изменить имя узла клиента в шеф-поваре с клиента без ножа

У меня есть AMI «золотой образ», и я хочу поместить его в группу автоматического масштабирования, которая возьмет образ, переименует его и выполнит run-llst. Я только что провел большую часть дня с функцией шеф-повара в cloud-config, и она не работает, потому что слишком много несоответствий между исходной средой шеф-повара и тем, что использует облачная конфигурация. Это также будет менее надежным и медленным в долгосрочной перспективе, потому что каждый раз придется готовить с нуля. Я хочу взять экземпляр, на котором работал шеф-повар, и начать с него. Оглядываясь вокруг, я вижу только способы сделать это вручную и с помощью ножа. Есть ли способ переписать несколько файлов и таким образом зарегистрировать образ на сервере шеф-повара?


person numb3rs1x    schedule 09.01.2015    source источник


Ответы (1)


Посмотрите на пример, который я показывал вам в прошлый раз. Это именно то, для чего это нужно. В AMI предварительно установлен Chef и имеется сертификат проверки. Во время загрузки cloud-init запускает сценарий, который я показал вам, который генерирует конфигурацию клиента и начальный список запуска, а затем регистрируется на сервере chef.

person coderanger    schedule 10.01.2015
comment
Для того, что мне нужно сделать, оказывается, все, что нужно, это удалить client.pem и переименовать узел. Поскольку ранее узел был сведен под другим именем, все остальное может остаться прежним. Спасибо, что помогли мне пройти через это. - person numb3rs1x; 11.01.2015
comment
Чтобы было понятно, у меня работает следующее: rm -f /etc/client.pem && echo server-app-$(date %+s) ›› /etc/chef/client.rb - person numb3rs1x; 11.01.2015
comment
Зачем вообще есть client.pem в AMI? Я бы не стал использовать шеф-клиент для создания AMI (для этого и нужен соло), но если вам нужно, вы должны удалить его во время процесса сборки AMI. - person coderanger; 11.01.2015
comment
@ numb3rs1x Я согласен с coderanger в последнем комментарии, я нахожусь на несколько ином пути в отношении инфраструктуры, но я также периодически поддерживаю загрузку исходной виртуальной машины, чтобы поддерживать ее в актуальном состоянии). Я выбрал быстрый и грязный путь со сценарием, который: 1) загружает виртуальную машину, 2) копирует client.pem из /root в /etc/chef 3) запускает chef-client 4) удаляет /etc/chef/client. pem и 5) выключите виртуальную машину. У меня нет node_name в client_rb, так как подготовка заботится об изменении имени хоста (бродяга с плагином vshpere для моего случая). - person Tensibai; 12.01.2015
comment
@coderanger да, я полагаю, что имеет смысл удалить client.pem перед созданием AMI. Я не учитывал этот шаг в этой части процесса. - person numb3rs1x; 12.01.2015