CentOS.yml 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. ---
  2. - name: Prep php... add php Remi repo
  3. dnf:
  4. name: https://rpms.remirepo.net/enterprise/remi-release-{{ ansible_distribution_major_version|int }}.rpm
  5. state: latest
  6. disable_gpg_check: yes
  7. validate_certs: no
  8. - name: Prep php... disable all the php repositories
  9. shell: yum-config-manager --disable 'remi-php*'
  10. no_log: true
  11. - name: Prep php... enable the repo php{{ php_version | replace(".","") }}
  12. shell: yum-config-manager --enable remi-php{{ php_version | replace(".","") }}
  13. no_log: true
  14. - name: Prep php... update os
  15. dnf:
  16. name: '*'
  17. update_cache: true
  18. state: latest
  19. - name: Prep php... install needed packages
  20. dnf:
  21. name:
  22. - php{{ php_version | replace(".","") }}-php
  23. - php{{ php_version | replace(".","") }}-php-pecl-apcu
  24. - php{{ php_version | replace(".","") }}-php-bcmath
  25. - php{{ php_version | replace(".","") }}-php-dom
  26. - php{{ php_version | replace(".","") }}-php-gmp
  27. - php{{ php_version | replace(".","") }}-php-pecl-imagick
  28. - php{{ php_version | replace(".","") }}-php-ldap
  29. - php{{ php_version | replace(".","") }}-php-openssl
  30. - php{{ php_version | replace(".","") }}-php-gd
  31. - php{{ php_version | replace(".","") }}-php-json
  32. - php{{ php_version | replace(".","") }}-php-mysql
  33. - php{{ php_version | replace(".","") }}-php-curl
  34. - php{{ php_version | replace(".","") }}-php-mbstring
  35. - php{{ php_version | replace(".","") }}-php-intl
  36. - php{{ php_version | replace(".","") }}-php-exif
  37. - php{{ php_version | replace(".","") }}-php-zip
  38. - php{{ php_version | replace(".","") }}-php-zlib
  39. - php{{ php_version | replace(".","") }}-php-fileinfo
  40. - php{{ php_version | replace(".","") }}-php-pcntl
  41. - php{{ php_version | replace(".","") }}-php-posix
  42. - php{{ php_version | replace(".","") }}-php-xmlreader
  43. - php{{ php_version | replace(".","") }}-php-xmlwriter
  44. - php{{ php_version | replace(".","") }}-php-ctype
  45. - php{{ php_version | replace(".","") }}-php-bz2
  46. - php{{ php_version | replace(".","") }}-php-ftp
  47. - php{{ php_version | replace(".","") }}-php-smbclient
  48. - php{{ php_version | replace(".","") }}-php-memcached
  49. - php{{ php_version | replace(".","") }}-php-redis
  50. - php{{ php_version | replace(".","") }}-php-phar
  51. - php{{ php_version | replace(".","") }}-php-opcache
  52. state: latest
  53. - name: Prep php... Set php in web server conf
  54. template:
  55. dest: /etc/httpd/conf.d/php{{ php_version | replace(".","") }}-php.conf
  56. src: CentOS/httpd_php.conf.j2
  57. mode: 0640
  58. when: websrv in ["apache", "apache2"]
  59. - name: Prep php... Set php env for {{ ansible_facts['distribution'] }}
  60. set_fact:
  61. php_bin: "php{{ php_version | replace('.','') }}"
  62. php_dir: "/etc/opt/remi/php{{ php_version | replace('.','') }}/php.d"
  63. - name: Prep php... Read configuration for PHP
  64. set_fact:
  65. php_content: "{{ lookup('template', '{{ role_path }}/templates/CentOS/php.ini.j2') }}"
  66. - name: Prep php... Integration configuration for PHP
  67. blockinfile:
  68. dest: /etc/opt/remi/php{{ php_version | replace(".","") }}/php.ini
  69. content: '{{ php_content }}'
  70. state: present
  71. marker: "; {mark} ANSIBLE MANAGED BLOCK"
  72. - name: Prep php... Read OPCACHE configuration for PHP
  73. set_fact:
  74. php_content: "{{ lookup('template', '{{ role_path }}/templates/CentOS/10-opcache.ini.j2') }}"
  75. - name: Prep php... Integration OPCACHE configuration for PHP
  76. blockinfile:
  77. dest: /etc/opt/remi/php{{ php_version | replace(".","") }}/php.d/10-opcache.ini
  78. content: '{{ php_content }}'
  79. state: present
  80. marker: "; {mark} ANSIBLE MANAGED BLOCK"
  81. - name: Prep php... Install PHP-FPM
  82. dnf:
  83. name:
  84. - php{{ php_version | replace(".","") }}-php-fpm
  85. state: latest
  86. when: add_php_fpm
  87. - name: Prep php... Configure PHP-FPM
  88. lineinfile:
  89. dest: /etc/opt/remi/php{{ php_version | replace(".","") }}/php-fpm.d/www.conf
  90. regexp: "^{{ item.property | regex_escape() }}.*"
  91. line: "{{ item.value }}"
  92. with_items:
  93. - { property: 'listen = 127.0.0.1:9000', value: 'listen = /var/opt/remi/php81/run/php-fpm/www.sock' }
  94. - { property: 'pm = dynamic', value: 'pm = {{ pm }}' }
  95. - { property: 'pm.max_children =', value: 'pm.max_children = {{ pm_max_children }}' }
  96. - { property: 'pm.start_servers =', value: 'pm.start_servers = {{ pm_start_servers }}' }
  97. - { property: 'pm.min_spare_servers =', value: 'pm.min_spare_servers = {{ pm_min_spare_servers }}' }
  98. - { property: 'pm.max_spare_servers =', value: 'pm.max_spare_servers = {{ pm_max_spare_servers }}' }
  99. - { property: ';pm.max_requests =', value: 'pm.max_requests = {{ pm_max_requests }}' }
  100. - { property: 'php_value[session.save_handler]', value: ';php_value[session.save_handler] = files' }
  101. - { property: 'php_value[session.save_path]', value: ';php_value[session.save_path] = /var/opt/remi/php81/lib/php/session' }
  102. - { property: 'php_value[soap.wsdl_cache_dir]', value: ';php_value[soap.wsdl_cache_dir] = /var/opt/remi/php81/lib/php/wsdlcache' }
  103. when: add_php_fpm
  104. - name: Prep php... Read PHP-FPM configuration
  105. set_fact:
  106. phpfpm_content: "{{ lookup('template', '{{ role_path }}/templates/CentOS/www.conf.j2') }}"
  107. - name: Prep php... Integration PHP-FPM configuration
  108. blockinfile:
  109. dest: /etc/opt/remi/php{{ php_version | replace(".","") }}/php-fpm.d/www.conf
  110. content: '{{ phpfpm_content }}'
  111. state: present
  112. marker: "; {mark} ANSIBLE MANAGED BLOCK"
  113. - name: Prep php... Read APCU configuration for PHP
  114. set_fact:
  115. php_content: "{{ lookup('template', '{{ role_path }}/templates/CentOS/apcu_nc_ini.j2') }}"
  116. - name: Prep php... Integration APCU configuration for PHP
  117. blockinfile:
  118. dest: /etc/opt/remi/php{{ php_version | replace(".","") }}/php.d/40-apcu.ini
  119. content: '{{ php_content }}'
  120. state: present
  121. marker: "; {mark} ANSIBLE MANAGED BLOCK"
  122. - name: Prep php... Integration Redis configuration for PHP
  123. template:
  124. dest: /etc/opt/remi/php{{ php_version | replace(".","") }}/php.d/50-redis.ini
  125. src: CentOS/50-redis.ini.j2
  126. mode: 0640
  127. when: my_redis_service.status == "enabled"
  128. - name: Prep php... Set alias php
  129. file:
  130. src: /opt/remi/php{{ php_version | replace(".","") }}/root/usr/bin/php
  131. dest: /usr/bin/php
  132. state: link
  133. - name: PHP Installed Starting
  134. service:
  135. name: php{{ php_version | replace(".","") }}-php-fpm
  136. state: started
  137. enabled: yes
  138. - name: Prep php... Set php-fpm instead of mod_php in web server conf
  139. template:
  140. dest: /etc/httpd/conf.d/php{{ php_version | replace(".","") }}-php.conf
  141. src: CentOS/httpd_php_fpm.conf.j2
  142. mode: 0640
  143. when: (websrv in ["apache", "apache2"]) and (enable_php_fpm)