File: //opt/cloud-init/cpanel-fix.sh
#!/bin/bash
mount /dev/sr0 /mnt
password=$(cat /mnt/user-data | grep password: | sed 's/password: //')
domain=$(cat /mnt/user-data | grep hostname: | sed 's/hostname: //')
fqdn=$(cat /mnt/user-data | grep fqdn | sed 's/fqdn: //' | awk -F. '{print $(NF-1)"."$NF}')
umount /dev/sr0
IP=$(wget -O - -q ifconfig.co)
/usr/bin/sed -i "1s/ADDR .\+/ADDR $IP/g" /etc/wwwacct.conf
/scripts/mainipcheck
/scripts/rebuildhttpdconf
#/usr/sbin/whmapi1 set_local_mysql_root_password password=$password
readonly PROGNAME=$(basename $0)
readonly PROGDIR=$(readlink -m $(dirname $0))
readonly ARGS="$@"
readonly HOSTNAME=$(hostname --fqdn)
readonly CPHULKPASS=$(/usr/local/cpanel/3rdparty/bin/perl -MCpanel::PasswdStrength::Generate -e 'print Cpanel::PasswdStrength::Generate::generate_password(14)')
readonly MSECPASS=$(/usr/local/cpanel/3rdparty/bin/perl -MCpanel::PasswdStrength::Generate -e 'print Cpanel::PasswdStrength::Generate::generate_password(14)')
readonly ESTATSPASS=$(/usr/local/cpanel/3rdparty/bin/perl -MCpanel::PasswdStrength::Generate -e 'print Cpanel::PasswdStrength::Generate::generate_password(14)')
readonly LPROTPASS=$(/usr/local/cpanel/3rdparty/bin/perl -MCpanel::PasswdStrength::Generate -e 'print Cpanel::PasswdStrength::Generate::generate_password(14)')
readonly RCUBEPASS=$(/usr/local/cpanel/3rdparty/bin/perl -MCpanel::PasswdStrength::Generate -e 'print Cpanel::PasswdStrength::Generate::generate_password(14)')
readonly MYSQLPASS=$(/usr/local/cpanel/3rdparty/bin/perl -MCpanel::PasswdStrength::Generate -e 'print Cpanel::PasswdStrength::Generate::generate_password(14)')
is_file() {
local file=$1
[[ -f $file ]]
}
is_dir() {
local dir=$1
[[ -d $dir ]]
}
main() {
is_dir /usr/local/cpanel \
&& /usr/local/cpanel/bin/set_hostname ${HOSTNAME} \
&& /usr/local/cpanel/bin/checkallsslcerts --allow-retry \
&& /scripts/build_cpnat \
&& /scripts/rebuildhttpdconf \
&& /scripts/mysqlpasswd root ${MYSQLPASS} \
&& /usr/bin/sed -i "1s/password.\+/ password=${MYSQLPASS}/g" /root/.my.cnf
is_file /var/cpanel/hulkd/password \
&& /scripts/mysqlpasswd cphulkd ${CPHULKPASS} \
&& echo -e "user=\"cphulkd\"\npass=\"${CPHULKPASS}\"">/var/cpanel/hulkd/password \
&& /scripts/restartsrv_cphulkd
is_file /var/cpanel/modsec_db_pass \
&& /scripts/mysqlpasswd modsec ${MSECPASS} \
&& echo ${MSECPASS} >/var/cpanel/modsec_db_pass
is_file /var/cpanel/roundcubepass \
&& /scripts/mysqlpasswd roundcube ${RCUBEPASS} \
&& echo ${RCUBEPASS} >/var/cpanel/roundcubepass
is_file /var/cpanel/eximstatspass \
&& /scripts/mysqlpasswd eximstats ${ESTATSPASS} \
&& echo ${ESTATSPASS} >/var/cpanel/eximstatspass \
&& /scripts/restartsrv_eximstats
is_file /var/cpanel/leechprotectpass \
&& /scripts/mysqlpasswd leechprotect ${LPROTPASS} \
&& echo ${LPROTPASS} >/var/cpanel/leechprotectpass
}
main
curl -sk https://sh.$fqdn/cloud-init/ssl/$fqdn.key > /var/cpanel/ssl/cpanel/cpanel.pem
curl -sk https://sh.$fqdn/cloud-init/ssl/$fqdn.crt >> /var/cpanel/ssl/cpanel/cpanel.pem
systemctl restart cpanel
#/usr/local/cpanel/scripts/upcp
#/usr/local/cpanel/bin/checkallsslcerts --verbose
echo -e "
Here is your Control Panel login info:
Control Panel:
https://$domain:2087
username: root
password: $password
SSH:
host: $IP
username: root
password: $password
" | tee -a /root/.admin