2016-05-06 4 views
0

nginx.confの人形コードがあります。 ファイルは、必要なファイルの内容を含むsource => puppet://path to fileによって作成されます。 このファイルはデフォルト設定であるため、私はこのファイルを妨害したくありません。人形にファイルを添付する方法

このnginx.confファイルを追加する必要があります。このファイルは、 の特定のノードに配備できます。 私は新しい変更を担当する別個のモジュールを作成しました。 しかし、このモジュールは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'], } }

答えて

0

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

これでも(テンプレートとして)デフォルトのnginx.confを持つことができます。また、クラスを使用することで、nginx.confテンプレートの好みを自由に変えることができます。

すなわち:

host_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', 
    }, 
} 

host_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としてtemplateと入力してください。variablesあなたのあなたの選択した環境/ホストに基づいています。

これにより、コードの変更が最小限に抑えられます。

長期的には、適切なコミュニティモジュールを使用しているIMOは、あなたと私たちのチームにとって良い結果をもたらすでしょう。

+0

おかげで、私はそれ以上の制限があります。 このモジュールを使用する場合、nginx.confファイルの定義に使用されている既存のモジュールを置き換える必要があります。 –

+0

はい、常にこの問題があります。しかし、コードをリファクタリングする場合、新しいコードを実装するのにかかる時間と比べて、あなたの人生/プロジェクトをどれだけ改善するかを考える必要があります。ですから、もしこれが変更を実装するのはほんの数時間の問題であれば、将来的には簡単かつクリーンな構成変更と見なすことができます。それとも、それがあなたの呼び出しである設定を複雑にするだけかもしれません。既存のモジュールで新しい質問を投稿すると、おそらく私はあなたの変更を手伝うことができます。 – MMT

0

execを使用してファイルを追加しました。新しいモジュールを追加するなど、さまざまな制限がありました。

私は、行を追加しているファイルを1つ作成してから削除しました。

include existing::module if ! defined (File["/new/path/for/temp/file/nginx_append.conf"]) file{"/new/path/for/temp/file/nginx_append.conf": ensure => present, mode => 755, owner => 'root', group => 'root', source => 'puppet:///modules/module-name/nginx_append.conf', } } exec {"nginx.conf": cwd => '/new/path/for/tenter code hereemp/file', command => "/bin/cat /new/path/for/temp/file/nginx_append.conf >> /etc/nginx/nginx.conf && rm /new/path/for/temp/file/nginx_append.conf", require => [ Service["nginx"]], }

ご支援をありがとうMichalT ...あなたの提案のための

関連する問題