Puppet: циклы для одновременного создания файла и символической ссылки - PullRequest
0 голосов
/ 08 мая 2020

Я хотел бы проанализировать массив и создать файлы и символические ссылки в другом каталоге. Я могу создавать файлы в sites-available и хотел бы создать символическую ссылку в sites-enabled. Не могли бы вы подсказать мне, как я могу это сделать, пожалуйста? Можно сразу сделать?

  $domainsnames.each |String $domain| {
    file {"/etc/nginx/sites-available/${domain}.conf":
      # ensure  => link,
      content => template('nginx_on_templates/virtualhost.conf.erb'),
      # target  => "/etc/nginx/sites-enabled/${domain}.conf",
      mode    => '0644',
      owner   => 'root',
      group   => 'root',
    }
  }

Заранее спасибо Ростислав

1 Ответ

2 голосов
/ 09 мая 2020

Вероятно, вы управляете как sites-available, так и sites-enabled, и вы хотите смоделировать то, что делает a2ensite enable <site-name>, верно?

В этом случае у вас есть что-то вроде:

 $domainsnames.each |String $domain| {
    file {"/etc/nginx/sites-available/${domain}.conf":
      ensure  => file,
      content => template('nginx_on_templates/virtualhost.conf.erb'),
      mode    => '0644',
      owner   => 'root',
      group   => 'root',
    }
    file {"/etc/nginx/sites-enabled/${domain}.conf":
      ensure  => link,
      target  => "/etc/nginx/sites-available/${domain}.conf",
    }
  }

Я также рекомендую вам взглянуть на модуль puppetlabs / apache, где вам не нужно самостоятельно управлять .conf, но вы управляете конфигурациями своего виртуального хоста:

например:

apache::vhost { 'user.example.com':
  port          => '80',
  docroot       => '/var/www/user',
  docroot_owner => 'www-data',
  docroot_group => 'www-data',
}
...