306 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			CFEngine3
		
	
	
	
			
		
		
	
	
			306 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			CFEngine3
		
	
	
	
| #
 | |
| #
 | |
| #
 | |
| 
 | |
| bundle agent install_php
 | |
| {
 | |
| classes:
 | |
| 	"use_ext_repos";
 | |
| 
 | |
| vars:
 | |
| 	"version" string => "$(php.version)";
 | |
| 	centos::
 | |
| 		"version" string => "";
 | |
| 		
 | |
| 
 | |
| 	freebsd::
 | |
| 
 | |
| 	freebsd::
 | |
| 		"pkgs" slist => {
 | |
| 			"php$(php.bsdvs)-session",
 | |
| 			"php$(php.bsdvs)-zip",
 | |
| 			"php$(php.bsdvs)-zlib",
 | |
| 			"php$(php.bsdvs)-phar",
 | |
| 			"php$(php.bsdvs)-pgsql",
 | |
| 			"php$(php.bsdvs)-mysqli",
 | |
| 			"php$(php.bsdvs)-filter",
 | |
| 			"php$(php.bsdvs)-mbstring",
 | |
| 			"php$(php.bsdvs)-dom",
 | |
| 			"php$(php.bsdvs)-xml",
 | |
| 			"php$(php.bsdvs)-simplexml",
 | |
| 			"php$(php.bsdvs)-ctype",
 | |
| 			"php$(php.bsdvs)-intl",
 | |
| 			"php$(php.bsdvs)-curl",
 | |
| 			"php$(php.bsdvs)-fileinfo",
 | |
| 			"php$(php.bsdvs)-exif",
 | |
| 			"php$(php.bsdvs)-iconv",
 | |
| 			"php$(php.bsdvs)-ldap",
 | |
| 			"php$(php.bsdvs)-gd",
 | |
| 			"php$(php.bsdvs)-pecl-imagick",
 | |
| 			"php$(php.bsdvs)-pdo",
 | |
| 			"php$(php.bsdvs)-pdo_sqlite",
 | |
| 			"php$(php.bsdvs)-sqlite3",
 | |
| 			"php$(php.bsdvs)-pdo_pgsql",
 | |
| 			"php$(php.bsdvs)-pdo_mysql",
 | |
| 			"php$(php.bsdvs)-tokenizer",
 | |
| 			"php$(php.bsdvs)-gettext"
 | |
| 		#	"php$(php.bsdvs)-pear-channel-doctrine"
 | |
| 			
 | |
| 		};
 | |
| 	#	"php$(bsdvs)-json",
 | |
| 
 | |
| 
 | |
| 	debian::
 | |
| 		"pkgs" slist => {
 | |
| 			"php$(version)-cli",
 | |
| 			"php$(version)-common",
 | |
| 			"php$(version)-zip",
 | |
| 			"php$(version)-pgsql",
 | |
| 			"php$(version)-mysql",
 | |
| 			"php$(version)-xml",
 | |
| 			"php$(version)-gd",
 | |
| 			"php$(version)-mbstring",
 | |
| 			"php$(version)-intl",
 | |
| 			"php$(version)-curl",
 | |
| 			"php$(version)-imagick",
 | |
| 			"php$(version)-ldap",
 | |
| #			"php$(version)-json"
 | |
| 			
 | |
| 		};
 | |
| 	ubuntu::
 | |
| 		"pkgs" slist => {
 | |
| 			"php$(version)-common",
 | |
| 			"php$(version)-zip",
 | |
| 			"php$(version)-pgsql",
 | |
| 			"php$(version)-mysql",
 | |
| 			"php$(version)-xml",
 | |
| 			"php$(version)-mbstring",
 | |
| 			"php-geshi",
 | |
| 			"php-json",
 | |
| 			"php-gd",
 | |
| 		};
 | |
| 
 | |
| 	centos::
 | |
| 		"xversion" string => "";
 | |
| 		"pkgs" slist => {
 | |
| 			"php$(xversion)-cli",
 | |
| 			"php$(xversion)-common",
 | |
| 			"php$(xversion)-pgsql",
 | |
| 			"php$(xversion)-mysqlnd",
 | |
| 			"php$(xversion)-xml",
 | |
| 			"php$(xversion)-gd",
 | |
| 			"php$(xversion)-mbstring",
 | |
| 			"php$(xversion)-intl",
 | |
| 			"php$(xversion)-ldap",
 | |
| 			"php$(xversion)-pecl-imagick-im6",
 | |
| 			"php-pecl-json-post",
 | |
| 			"php-pecl-apcu",
 | |
| 			"php-pecl-zip",
 | |
| 		};
 | |
| 
 | |
| 
 | |
| commands:
 | |
| #	(debian|ubuntu)&php_install_repo::
 | |
| #		"/bin/sh"
 | |
| #		args => "$(sys.workdir)/inputs/$(def.wmde_libdir)/scripts/install-php-sury.sh",
 | |
| #		handle => "php_repo_ready";
 | |
| #	(debian|ubuntu)&(!php_install_repo)::
 | |
| #		"/usr/bin/true"
 | |
| #		inform => "false",
 | |
| #		handle => "php_repo_ready";
 | |
| 
 | |
| #	!(debian|ubuntu)::
 | |
| 
 | |
| 
 | |
| methods:
 | |
| 	debian&use_ext_repos::
 | |
| 		"any" usebundle => install_apt_repo("php","$(php.apt_repo_url)","$(php.apt_repo_key)","$(php.apt_repo_key_name)"),
 | |
| 			handle => "php_repo_ready";
 | |
| 	
 | |
| 	centos::
 | |
| 		"any" usebundle => php_install_centos_repos,
 | |
| 			handle => "php_repo_ready";
 | |
| 
 | |
| 
 | |
| 	any::
 | |
| 	"any" usebundle => wmde_install_packages(@(pkgs),"php"),
 | |
| 		depends_on => {"php_repo_ready"};
 | |
| 
 | |
| commands:
 | |
| 	freebsd::
 | |
| 		"/usr/bin/true"
 | |
| 		inform => "false",
 | |
| 		handle => "php_repo_ready";
 | |
| }
 | |
| 
 | |
| 
 | |
| bundle agent php_install_centos_repos
 | |
| {
 | |
| classes:
 | |
| 	centos::
 | |
| 	"switch_repo" expression => not(returnszero("cat /etc/dnf/modules.d/php.module 2>/dev/null | grep -q '^stream.*=.*remi-$(php.version)'","useshell"));
 | |
| 	"install_remi" expression => not(returnszero("rpm -q remi-release > /dev/null","useshell"));
 | |
| 	"install_epel" expression => not(returnszero("rpm -q epel-release > /dev/null","useshell"));
 | |
| 
 | |
| commands:
 | |
| 	centos&install_epel::
 | |
| 		"/usr/bin/yum"
 | |
| 		args =>	"install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(sys.os_version_major).noarch.rpm",
 | |
| 		handle => "php_epel_repo_installed";
 | |
| 
 | |
| 	centos&(!install_epel)::
 | |
| 		"/usr/bin/true"
 | |
| 		inform => "false",
 | |
| 		handle => "php_epel_repo_installed";
 | |
| 		
 | |
| 	centos&install_remi::
 | |
| 	"/usr/bin/yum"
 | |
| 	args =>	"install -y https://rpms.remirepo.net/enterprise/remi-release-$(sys.os_version_major).rpm",
 | |
| 		depends_on => {"php_epel_repo_installed"},
 | |
| 		handle => "php_remi_repo_installed";
 | |
| 
 | |
| 	centos&(!install_remi)::
 | |
| 		"/usr/bin/true"
 | |
| 		inform => "false",
 | |
| 		handle => "php_remi_repo_installed";
 | |
| 	
 | |
| 
 | |
| 	centos&switch_repo::
 | |
| 		"dnf" args =>  "module switch-to php:remi-$(php.version) -y",
 | |
| 		contain => wmde_cmd_useshell,
 | |
| 		depends_on => {"php_remi_repo_installed"};
 | |
| 
 | |
| 
 | |
| methods:
 | |
| }
 | |
| 
 | |
| bundle agent php(settings)
 | |
| {
 | |
| vars:
 | |
| 	"ini_files" slist => { };
 | |
| 
 | |
| 	debian::
 | |
| 		"version" string => "8.0";
 | |
| 		"ini_files" slist => {
 | |
| #			"/etc/php/$(php.version)/apache2/php.ini",
 | |
| #			"/etc/php/$(php.version)/fpm/php.ini"
 | |
| 		};
 | |
| 
 | |
| 		"cli_exe" string => "/usr/bin/php";
 | |
| 
 | |
| 		"fpm_pkgs" slist => { "php$(version)-fpm" };
 | |
| 		"fpm_service_name" string => "php$(version)-fpm";
 | |
| 		"fpm_socket" string => "/run/php/php$(version)-fpm.sock";
 | |
| 		"fpm_socket_type" string => "unix";
 | |
| 
 | |
| 		"apt_repo_url" string => "https://packages.sury.org/php/";
 | |
| 		"apt_repo_key" string => "https://packages.sury.org/php/apt.gpg";
 | |
| 		"apt_repo_key_name" string=> "deb.sury.org-php.gpg";
 | |
| 
 | |
| 		"apache_m" string => "php";
 | |
| 		"apache_f" string => "libphp$(php.version)";
 | |
| 
 | |
| 	ubuntu::
 | |
| 		"apt_repo_url" string => "https://ppa.launchpadcontent.net/ondrej/php/ubuntu/";
 | |
| 		"apt_repo_key" string => "";
 | |
| 		"apt_repo_key_name" string=> "";
 | |
| 
 | |
| 	ubuntu_22::
 | |
| 		"version" string => "8.2";
 | |
| 
 | |
| 
 | |
| 	freebsd::
 | |
| 		"ini_files" slist => {
 | |
| #			"/etc/php/$(install_php.version)/apache2/php.ini",
 | |
| #			"/etc/php/$(install_php.version)/fpm/php.ini"
 | |
| 		};
 | |
| 		"cli_exe" string => "/usr/local/bin/php";
 | |
| 		"version" string => "8.2";
 | |
| 		"bsdvs" string => "82";
 | |
| 		"apache_m" string => "php";
 | |
| 		"apache_f" string => "libphp";
 | |
| 		"fpm_pkgs" slist => {};
 | |
| 		"fpm_service_name" string => "php-fpm";
 | |
| 		"fpm_socket" string => "127.0.0.1:9000";
 | |
| 		"fpm_socket_type" string => "inet";
 | |
| 
 | |
| 	centos::
 | |
| 		"cli_exe" string => "/usr/bin/php";
 | |
| 		"version" string => "8.2";
 | |
| 		"fpm_pkgs" slist => { "php-fpm" };
 | |
| 		"fpm_service_name" string => "php$(version)-fpm";
 | |
| 		"fpm_socket" string => "/run/php-fpm/www.sock";
 | |
| 
 | |
| 
 | |
| files:
 | |
| 	"$(ini_files)"
 | |
| 	create => "true",
 | |
| 	edit_template => "$(sys.workdir)/inputs/$(wmde_libdir)/templates/php.ini.mustache",
 | |
| 	template_method => "mustache",
 | |
| 	template_data => @(settings),
 | |
| 	classes => if_repaired(php_repaired);
 | |
| 
 | |
| 
 | |
| #methods:
 | |
| #	"any" usebundle => install_php;
 | |
| reports:
 | |
| #	"PHP VERSION: $(ini_files) V:$(install_php.version)";
 | |
| 
 | |
| }
 | |
| 
 | |
| bundle agent install_php_fpm
 | |
| {
 | |
| vars:
 | |
| 	"service_deps" slist => {
 | |
|                 "php_fpm_pkgs_installed",
 | |
|                 "php_pkgs_installed"
 | |
|         };
 | |
| 	freebsd::
 | |
| 		"service_deps" slist => {
 | |
|        	         "php_pkgs_installed"
 | |
|        		 };
 | |
| 	
 | |
| methods:
 | |
| 	"any" usebundle => install_php; 
 | |
| 	"any" usebundle => wmde_install_packages(@(php.fpm_pkgs),"php_fpm");
 | |
| 	
 | |
| 
 | |
| 	"any" usebundle => wmde_service("$(php.fpm_service_name)","php_kept|php_fpm_kept","php_repaired|php_fpm_repaired"),
 | |
| 	depends_on => @(service_deps);
 | |
| reports:
 | |
| #	"php ????";
 | |
| }
 | |
| 
 | |
| 
 | |
| bundle agent php_composer(cfg)
 | |
| {
 | |
| vars:
 | |
| 	"installer" string => "$(sys.workdir)/data/php/composer-setup.php";
 | |
| 	"exe" string => "/usr/local/bin/composer";
 | |
| classes:
 | |
| 	"php_composer_install" expression => not(fileexists("$(exe)"));
 | |
| 
 | |
| vars:
 | |
| 
 | |
| 
 | |
| files:
 | |
| 	"$(sys.workdir)/data/php/."
 | |
| 		create => "true",
 | |
| 		handle => "php_dir_created";
 | |
| commands:
 | |
| 	php_composer_install::
 | |
| 		"$(wget.exe) -q -O $(installer) https://getcomposer.org/installer"
 | |
| 		handle => "php_composer_installer_downloaded",
 | |
| 		depends_on => {"php_dir_created"};
 | |
| 	
 | |
| 		"export HOME=/root && $(php.cli_exe) $(installer) --install-dir=/usr/local/bin --filename=composer"
 | |
| 		handle => "php_composer_installed",
 | |
| 		contain => wmde_cmd_useshell,
 | |
| 		depends_on => {"php_composer_installer_downloaded"};	
 | |
| 		
 | |
| 		
 | |
| methods:
 | |
| 	"any" usebundle => install_php;
 | |
| 	"any" usebundle => install_wget;
 | |
| }
 |