Шеф, как установить несколько одинаковых значений с разными атрибутами?

В одном локальном узле с помощью chef-solo. Я хочу установить 3 значения «сервер», но установить только последнее значение. Пожалуйста, посоветуйте, как установить все значения? Я хочу добиться такого результата в settings.xml:

<servers> 
  <server> 
    <id>server1</id> 
    <username>user1</username>
     <password>pass1</password>
  </server> 
  <server>
     <id>server2</id>
     <username>user2</username>
     <password>pass2</password>
  </server> 
  <server>
     <id>server3</id> 
     <username>user3</username>
     <password>pass3</password>
  </server>
</servers>

Это моя кулинарная книга:

chef_gem 'nori' do
  action :install
end

chef_gem 'gyoku' do
  action :install
end

include_recipe "maven"
node.default['maven']['version'] = "3.3.3"

maven_settings "settings.servers" do
  value "server" => {
    "id" => "server1",
    "username" => "user1",
    "password" => "pass1"
  }
end

maven_settings "settings.servers" do
  value "server" => {
    "id" => "server2",
    "username" => "user2",
    "password" => "pass2"
  }
end

maven_settings "settings.servers" do
  value "server" => {
    "id" => "server3",
    "username" => "user3",
    "password" => "pass3"
  }
end

Спасибо, если что посоветуете!


person VitaliyH    schedule 27.01.2016    source источник
comment
Добро пожаловать в StackOverflow и Chef. Мне непонятно, чего вы хотите добиться. Пожалуйста, опишите подробнее. Вот как выглядит ваш рецепт? Вы не можете объявить три ресурса maven_settings[settings.servers] для одного и того же узла. Знакомы ли вы с концепцией атрибутов в Chef?   -  person StephenKing    schedule 27.01.2016
comment
Да, как говорит StephenKing, 3 разных ресурса не должны иметь одинаковое имя, поэтому вы можете просто попробовать дать им другое имя. Я также не уверен, чего вы пытаетесь достичь, но изменение settings.servers, например, на settings.server1, settings.server2, settings.server3 должно решить вашу текущую проблему с атрибутом value.   -  person gsaslis    schedule 27.01.2016
comment
Спасибо, за ваши ответы! Я отредактировал первое сообщение, добавил то, что вы просили.   -  person VitaliyH    schedule 27.01.2016


Ответы (1)


Похоже, вам просто нужно отредактировать атрибут servers xml, поэтому, согласно поваренной книге maven README, синтаксис должен быть таким:

maven_settings "settings" do
    value "servers" => {
      "server1" => {
        "id" => "server1",
        "username" => "user1",
        "password" => "pass1"
      },
      "server2" => {
        "id" => "server2",
        "username" => "user2",
        "password" => "pass2"
      },
      "server3" => {
        "id" => "server3",
        "username" => "user3",
        "password" => "pass3"
      }   
}
end
person gsaslis    schedule 27.01.2016
comment
Получается примерно так: ‹servers› & lt; сервер > & л; я > сервер 1 < /идентификатор> & л; имя пользователя & gt; пользователь1 < /имя пользователя> & л; пароль & gt; проход1 & lt; / пароль > & л; /сервер> ‹/ серверы› - person VitaliyH; 27.01.2016
comment
Хм ... хорошо, я понимаю ... Я соответствующим образом отредактировал свой ответ выше. Пожалуйста, попробуйте это, так как это сработало для меня. - person gsaslis; 27.01.2016
comment
Большое спасибо за вашу помощь! Я думаю, что такая опция должна работать, но я остановился на опции «Из файла». Я не уверен, что запись server1,serverN в settings.xml будет работать корректно. - person VitaliyH; 28.01.2016