0

nginx.confの人形コードがあります。source => puppet://path to file必要なファイルの内容を含むファイルが作成されます。このファイルはデフォルト設定用なので、邪魔したくありません。

nginx.conf必要な特定のノードにデプロイできるこのファイルを追加する必要があります。そのため、新しい変更を担当する別のモジュールを作成しました。ただし、このモジュールは、ファイルを含む以前のモジュールに依存していnginx.confます。

if ! defined(File['/etc/nginx/nginx.conf']) { file { '/etc/nginx/nginx.conf' : ensure => present, owner => root, group => root, mode => '0644', source => 'puppet:///modules/path/to/file/nginx_default.conf', require => Package[ 'nginx' ], notify => Service[ 'nginx'], } }

上記のコードを邪魔せずにnginx.confファイルを追加するにはどうすればよいですか?

4

2 に答える 2

0

Puppet ForgeのNginx モジュールを使用することをお勧めします。モジュールの主な利点は、車輪を再発明する必要がないことです。モジュールを再利用したり、ニーズに合わせたりすることができます。

これにより、デフォルトの nginx.conf を (テンプレートとして) 持つことができ、クラスを使用することで、好みに合わせて nginx.conf テンプレートを再利用できます。

すなわち:

ホスト_1.pp:

class { 'nginx':
  # Fix for "upstream sent too big header ..." errors
  fastcgi_buffers     => '8 8k',
  fastcgi_buffer_size => '8k',
  ssl_ciphers         => 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256',
  upstream => {
    fpmbackend => 'server unix:/var/run/php-fpm-www.sock',
  },
}

ホスト_2.pp:

class { 'nginx':
  # Fix for "upstream sent too big header ..." errors
  fastcgi_buffers     => '8 8k',
  fastcgi_buffer_size => '36k',
  upstream => {
    fpmbackend => 'server unix:/var/run/php-fpm-host2.sock',
  },
}

ただし、モジュールを引き続き使用する場合は、nginx.conf をテンプレートとしてセットアップし、選択した環境/ホストに基づいて選択した変数を設定できます。

これにより、コードへの変更が最小限になります。

長期的には、適切なコミュニティ モジュールを使用することで、IMO はあなたと私たちのチームにより良い利益をもたらします。

于 2016-05-06T21:36:34.170 に答える