Ansible을 사용하여 독립적인 방식 으로 한 버전 post_max_size
에서 두 개의 잘 알려진 PHP 변수를 변경하는 방법이 있습니까 ?upload_max_filesize
php.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일 뿐입니다.
게다가, 물론 원하는 대로 파일 크기를 조정할 수도 있습니다!