Ansible을 사용하여 PHP의 post_max_size 및 upload_max_filesize 변경

Ansible을 사용하여 PHP의 post_max_size 및 upload_max_filesize 변경

Ansible을 사용하여 독립적인 방식 으로 한 버전 post_max_size에서 두 개의 잘 알려진 PHP 변수를 변경하는 방법이 있습니까 ?upload_max_filesizephp.ini

나는 이것을 다루는 문헌을 찾지 못했고 큰 회사는 물론 어떤 회사도 2M이 두 변수의 기본 한계 값만 허용하지 않기 때문에 나에게 중요해 보입니다. 매우 일반적입니다.)

답변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일 뿐입니다.

게다가, 물론 원하는 대로 파일 크기를 조정할 수도 있습니다!

관련 정보