Назад | Перейти на главную страницу

Как изменить одну переменную в Puppet между средами

В частности, если я нахожусь на стадии подготовки, мне нужен каталог A, а в QA - каталог B:

file{'/etc/appenv':
  ensure => file,
  owner  => 'root',
  group  => 'root',
  mode   => 0644,
  source => "file:///puppet/modules/myapp/appenv-${env}",
}

У меня есть только 1 машина, которой сейчас нужен этот конкретный env. я прочитал Puppet: лучшие практики переопределения переменных, но я думал, что для этой цели должны использоваться ступени.

Вместо $ {env} попробуйте использовать $ {environment} в соответствии с официальная документация.

Если вы хотите изменить другую переменную в зависимости от среды, вы можете сделать это с помощью условного оператора / оператора case / селектора:

$dir = ${environment} ? {
   'staging' =>'A',
    'QA' => 'B',
    default => 'unknown',
}

file{'/etc/appenv':
  ensure => file,
  owner  => 'root',
  group  => 'root',
  mode   => 0644,
  source => "file:///puppet/modules/myapp/${dir}/appenv",
}