2016-05-09 6 views
0

私はcentos7にdjangoをデプロイするための安全なスクリプトを書いています。私の問題はnginxです。http {}の中にnginx設定ファイルの行を挿入してください

私は/ etc/nginx/sites-availableディレクトリと/ etc/nginx/sites-enabledディレクトリを作成しました。サイトはhttp {}ブロックの/etc/nginx/nginx.confファイルの下にあります。

対応するディレクトリを作成して設定ファイルをコピーした後で、私の安全なスクリプトのhttp {}ブロックにinclude /etc/nginx/sites-available/*.confという行を挿入するにはどうすればよいですか?

出力はあなたがlineinfile moduleを使用することができます

http { 
    ..... 
    ..... 

    server { 
     ....... 
    } 

    include /etc/nginx/sites-available/*.conf; 
} 
+2

あなたはhttp://docs.ansible.com/ansible/template_module.htmlようSTH意味ですか? – Wtower

+0

@Wtower期待どおりテンプレートが動作しない場合があります。 –

+0

"私は期待通りに動かないかもしれない"と私は今lineinfileで行くつもりですか? lineinfileはもっと多くの痛みを引き起こします。 – tedder42

答えて

0

でなければなりません。このようなものが動作するはずです:

- lineinfile: dest=/etc/nginx/nginx.conf regexp="^include /etc/nginx/sites-available/*.conf;" insertbefore="server {" line="include /etc/nginx/sites-available/*.conf;" 

これはサーバーブロックの前に行を挿入します。あなたはinsertbeforeでやりとりして、別の正規表現の後ろに挿入することができます。

2

lineinfileを使用しないでください。ある時点で後悔します。みんなやってる。

テンプレートを作成してから、そのテンプレートをロードする必要があります。

#file: templates/nginx.conf.j2 
http { 
    ..... 
    ..... 

    server { 
     ....... 
    } 

    include /etc/nginx/sites-available/*.conf; 
} 

#file: main.yml 
- name: "Load nginx config" 
    template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf 

これにより、設定ファイル内の何かを変更する必要がある場合、これにより設定の管理が簡単になります。

ドキュメント:Template Module

+0

私は、インクルード行を追加するためだけにnginx.confファイル全体をテンプレートにコピーしたくありませんでした。 lineinfileのよりよい解決策をアドバイスしていますか? –

+1

はい、信じてください、ある時点で 'lineinfile'を使って後悔します;)nginx.confをテンプレートとして使うと、後で何かを変更したいと思うかもしれません。 – shaps

関連する問題