Ansibleを使用して独立した方法で1つのバージョンpost_max_size
で2つのよく知られているPHP変数を変更する方法はありますか?upload_max_filesize
php.ini
私はこれを扱う文献を見つけることができず、大きな会社だけでなく、どの会社もこれら2M
2つの変数のデフォルトの限界値しか許可しないので、私にとって重要なようです。とても一般的です。)
答え1
正規表現を使う代わりにhttps://docs.ansible.com/ansible/latest/modules/ini_file_module.html
- name: set PHP memory limit
become: yes
ini_file:
path: /etc/php.ini
section: PHP
option: memory_limit
value: 512M
答え2
わかりました、これが私の関心を呼び起こし、私が考えたものは次のとおりです。
--- - モデレーター:全体 なる: はい 仕事: - 名前: php.ini のパスを取得します。 探す: パス:/etc/php ファイルタイプ:ディレクトリ 再帰:なし 登録:ini_path - 名前:php.ini post_max_sizeアップデート 変える: ターゲット: "{{ ini_path.files[0].path }}/apache2/php.ini" 正規表現: '^post_max_size.*$' 置換: 'post_max_size = 20M' バックアップ:はい - 名前: php.ini upload_max_filesize アップデート 変える: ターゲット: "{{ ini_path.files[0].path }}/apache2/php.ini" 正規表現: '^upload_max_filesize.*$' 置換: 'upload_max_filesize = 20M' バックアップ:はい
私が最初にやったことは、find
モジュールを使用して私たちが実行しているPHPのバージョンを確認し、結果をに登録することでしたini_path
。以下の唯一のディレクトリが/etc/php
実際のバージョン番号を持つディレクトリであるためです。
ls /etc/php/
7.2
登録結果はPython辞書なので、後で結果をフルパスと組み合わせますphp_ini
。
"{{ ini_path.files[0].path }}/apache2/php.ini"
このようにして、実行しているPHPのバージョンを事前に知らなくてもプレイブックを使用できます(理由はapache2を使用する必要があります!)。
私のテストサーバー(Ubuntu 18)の実行は次のとおりです。
アンサーブルプレイブック update_phpini.yml -i "192.168.1.11," -kK SSHパスワード: SUDOパスワード[デフォルトはSSHパスワード]: すべて再生] *************************************************** * ********************* 作業 [設定] *************************************************** ********************** 確認: [192.168.1.11] タスク[php.iniパスを取得]********************************************* * **************** 確認: [192.168.1.11] タスク [php.ini post_max_size 更新] *********************************************** ** 確認: [192.168.1.11] タスク [php.ini upload_max_filesize アップデート] ************************************** 確認: [192.168.1.11] プレイレビュー******************************************************* ************************** 192.168.1.11:正常=4変更=0到達不能=0失敗=0
実稼働環境では、より多くのテストを実行し、set_fact
最初に変数にパスを割り当てることができます。これはPOCだけです。
さらに、もちろん好きなようにファイルのサイズを変更することもできます!