Как марионетка и различие без fqdn?

У меня есть одна проблема, как управлять агентами-узлами с помощью Puppet?

Я использую openstack для автоматической генерации vms, а затем puppet с несколькими кодами кукол в специальном шаблоне.

например.

Система предоставляет несколько vms, каждый vm имеет два атрибута:

fqdn: может быть, повторить (вы знаете, VMS генерируются системой в сложной env)

uuid: он будет уникальным и хранится в постоянном файле. это не изменится

и ниже два из них.

VM1:

fqdn: api-server.expamle.com
uuid: 20a558f1-2cd9-4068-b5fc-8d252c3f3262

VM2:

fqdn: api-server.expamle.com
uuid: 096359d6-5dc9-47e9-946a-bd702fe7c2d5

(Также я могу указать имя хоста с uuid, но я думаю, что это не очень хорошая идея.)

и теперь я хочу марионетку их puppet kick или же mcollective puppet runonce,

с mco, я могу выбрать facu uuid, который будет отличаться от VM1 и VM2.

mco pupppetd runonce --with-facter uuid=20a558f1-2cd9-4068-b5fc-8d252c3f3262

но я все еще ДОЛЖЕН жестко закодировать FQDN в коде кукол

узел api-server.expamle.com {
    ...
}

но на самом деле я просто хочу использовать его в следующем стиле:

facter 20a558f1-2cd9-4068-b5fc-8d252c3f3262 {...
}
facter 096359d6-5dc9-47e9-946a-bd702fe7c2d5 {...
}

как я могу написать куклу? или какие-то изменения в архитектуре?

1 ответ

Существует несколько способов назначения ролей / классификации узла в марионетке.

Решение, более близкое к приведенному вами примеру, заключается в использовании следующего файла node.pp

node default {

  case $::uuid {
    "20a558f1-2cd9-4068-b5fc-8d252c3f3262": {
        include apache
        ...
    }
    "096359d6-5dc9-47e9-946a-bd702fe7c2d5": {
        include ngnix
        ...
    }
    default: {
        ...
    }
  }

}

Сказав это, я не уверен, что это лучшее решение. Существуют лучшие способы назначения классов / ролей узлу.

Я бы посоветовал взглянуть на кукольного иера ( http://docs.puppetlabs.com/hiera/1/complete_example.html) или ENC ( http://docs.puppetlabs.com/guides/external_nodes.html) для улучшения механизмов.

Другие вопросы по тегам