2015-01-09 5 views
0

Это мой файл knife.rb. В этом я хочу установить имя_узла как fqdn этого локального компьютера. Я не хочу вручную вводить его.
Потому что я должен использовать это для n числа машин. Я просто пишу атрибут по умолчанию, чтобы получить fqdn машины.
Он дает рубин Синтаксическая ошибка.Как установить fqdn локальной машины в knife.rb

log_level    :info 

log_location    STDOUT 

client_key    '/etc/chef/client.pem' 

node_name    '#node['fqdn']' 

chef_server_url   'myserverurl' 


SyntaxError: /root/.chef/knife.rb:5: syntax error, 
unexpected tIDENTIFIER, expecting end-of-input 
node_name    '#node['fqdn']' 
            ^

Соответствующее содержимое файла:

4: client_key    '/etc/chef/client.pem' 

    5: node_name    '#node['fqdn']' 

    6: chef_server_url   'myserverurl' 
+0

вместо '#node [' fqdn ']' также попробуйте с <% = node ['fqdn']%> Он также показывает ту же синтаксическую ошибку. – VVijay

ответ

0

Я согласен с Tensibai и coderanger в том, что это не ваш лучший подход, но если вы действительно этого хотите, я бы предложил вы протяните машину и спросите.

node_name `hostname --fqdn` 

ИЛИ

node_name `hostname` 

в зависимости от того, хотите ли вы FQDN или нет. Оба, конечно, предполагают, что у вас есть действующее имя хоста, установленное на вашем хосте.

0

атрибуты узла шеф-повара рецепт вещь, они не существуют для конфигурации (в верхней части обычно неправильного синтаксиса Ruby). К счастью для вас, FQDN уже является именем node_name по умолчанию, поэтому просто не указывайте его вообще!

+0

Если я не укажу имя узла, он показывает ошибку, чтобы назначить имя узла. Как заставить его работать этот файл knife.rb – VVijay

0

В соответствии с комментарием:

Сформировать файл knife.rb с поваром, если вы действительно хотите.

Используйте ресурс шаблона в поваренной книге, которая будет генерировать knife.rb из файла .erb, где вы укажете <%= node['fqdn'] %>, как сказал coderanger.

Но я настоятельно рекомендую не делать этого, потому что ваша система обеспечения безопасности уже должна обрабатывать разрушение/воссоздание узла, поэтому это больше место, где можно управлять узлом и клиентом у шеф-повара, а не с самим узлом.

Старый:

Почему вы хотели бы использовать нож на всех узлах?

нож является инструментом администрирования предполагается использовать на рабочих станциях для управления узлами, cookbboks и т.д.

Пожалуйста, объясните ваш случай использования, поэтому мы можем изменить и направить вас на то, что вы пытаетесь достичь. Это проблема XY (вопрос о инструменте вместо вопроса о проблеме)

+0

На самом деле я хочу удалить свой узел из этого узла. Так что я пишу этот файл knife.rb. Если я поместил свой fqdn в имя node_name, он отлично работает. Но для n узлов, как я могу это достичь? – VVijay

+0

Отредактированный ответ для вашего случая, даже если я думаю, что это ошибка концепции, когда узел удаляет себя. – Tensibai

+0

узел ножа delete -y $ (имя хоста -f). эта работа прекрасна, когда я выполняю сам этот узел, только я устанавливаю fqdn этой машины – VVijay

Смежные вопросы