bundle agent ipam { vars: ipam:: "config[host]" string => "mysql01"; "config[user]" string => "phpipam"; "config[pass]" string => "Hee0Hai8lie2gaaBia8xaisieSiengie"; "config[name]" string => "phpipam"; "config[port]" string => "3306"; "index" slist => getindices("ipam.config"); "packages" slist => { "pear", "php56-filter", "php56-gettext", "php56-gd", "php56-gmp", "php56-json", "php56-mbstring", "php56-openssl", "php56-pdo_mysql", "php56-session", "php56-simplexml", "php56-sockets", }; methods: ipam:: "ipam" usebundle => install_package("$(this.bundle)", "$(ipam.packages)"); "ipam" usebundle => fcgiwrap("nobody", "www", "770"); "ipam" usebundle => php56(); "ipam" usebundle => nginx("$(sys.inputdir)/templates/nginx/ipam_nginx.conf", "nginx.conf"); files: ipam:: "/var/www/phpipam/config.php" create => "true", perms => system_owned("444"), edit_line => regex_replace("\$db\['$(index)'\]\s+=\s+\"(?!$(config[$(index)]))[^\"]+\";", "$db['$(index)'] = \"$(config[$(index)])\";"), classes => if_repaired("ipam_ipam_config_php_repaired"); reports: any:: "$(this.bundle): /var/www/phpipam/config.php repaired" ifvarclass => "ipam_ipam_config_php_repaired"; }