Sven Ullmann
2 years ago
9 changed files with 247 additions and 30 deletions
-
7bin/project-manager
-
22etc/.config_template
-
7plugins/git/commands/clone
-
69plugins/plesk/commands/create-database
-
62plugins/plesk/commands/create-subdomain
-
10plugins/plesk/etc/.config_template
-
59plugins/plesk/includes/includes
-
5plugins/ssh/commands/add-key
-
36plugins/ssh/includes/includes
@ -0,0 +1,69 @@ |
|||
#!/bin/bash |
|||
|
|||
function usage { |
|||
echo |
|||
echoMainTitle "Creates a database on plesk server" |
|||
echo |
|||
echoSubTitle "Usage:" |
|||
echo |
|||
echo "project-manager plesk:create-database [project-shortname] [env]" |
|||
echo |
|||
echo " [env] could be live or stage" |
|||
echo |
|||
echo "--help Prints this message" |
|||
echo |
|||
} |
|||
|
|||
source "$project_manager_dir/bin/includes/project_header" |
|||
env="$(getArgument "$2" "$(usage)" "live stage")" |
|||
pleskValidate "$env" |
|||
|
|||
db_user="$(dbGetConfig "$env" "user")" |
|||
db_password="$(dbGetConfig "$env" "password")" |
|||
db_database="$(dbGetConfig "$env" "database")" |
|||
domain="$(getConfig "$env" "domain")" |
|||
|
|||
split=($(echo $domain | tr "." "\n")) |
|||
count="${#split[@]}" |
|||
((length=$count-2)) |
|||
sub='' |
|||
for i in "${!split[@]}" |
|||
do |
|||
((j=$i+1)) |
|||
if [ "$j" -lt "$length" ] |
|||
then |
|||
sub+="${split[$i]}." |
|||
fi |
|||
if [ "$j" -eq "$length" ] |
|||
then |
|||
sub+="${split[$i]}" |
|||
fi |
|||
done |
|||
domain="$(echo "$domain" | sed "s/$(sedEscape "$sub")\.//")" |
|||
|
|||
echo |
|||
echoMainTitle "Adding database on plesk server" |
|||
echo |
|||
echoSubTitle "Please verify data" |
|||
echo |
|||
echo "-- $env" |
|||
echo "Domain: $domain" |
|||
echo |
|||
echo "Database name: $db_database" |
|||
echo "Database user: $db_user" |
|||
echo |
|||
echo "Plesk host: $plesk_host" |
|||
echo "Plesk user: $plesk_user" |
|||
echo "Plesk private key: $plesk_private_key" |
|||
echo "Plesk public key: $plesk_public_key" |
|||
echo |
|||
confirm |
|||
|
|||
pleskAddSSHKey |
|||
|
|||
ssh "$plesk_user@$plesk_host" "plesk bin database --create '$db_database' -domain '$domain' -type '$plesk_db_type' -server 'localhost'" |
|||
ssh "$plesk_user@$plesk_host" "plesk bin database --create-dbuser '$db_user' -passwd '$db_password' -domain '$domain' -database '$db_database' -server 'localhost'" |
|||
|
|||
echo |
|||
echoSuccess "Database has been created on plesk" |
|||
echo |
@ -0,0 +1,62 @@ |
|||
#!/bin/bash |
|||
|
|||
function usage { |
|||
echo |
|||
echoMainTitle "Creates a subdomain on plesk server" |
|||
echo |
|||
echoSubTitle "Usage:" |
|||
echo |
|||
echo "project-manager plesk:create-subdomain [project-shortname] [env]" |
|||
echo |
|||
echo " [env] could be live or stage" |
|||
echo |
|||
echo "--help Prints this message" |
|||
echo |
|||
} |
|||
|
|||
source "$project_manager_dir/bin/includes/project_header" |
|||
env="$(getArgument "$2" "$(usage)" "live stage")" |
|||
pleskValidate "$env" |
|||
|
|||
domain="$(getConfig "$env" "domain")" |
|||
split=($(echo $domain | tr "." "\n")) |
|||
count="${#split[@]}" |
|||
((length=$count-2)) |
|||
sub='' |
|||
for i in "${!split[@]}" |
|||
do |
|||
((j=$i+1)) |
|||
if [ "$j" -lt "$length" ] |
|||
then |
|||
sub+="${split[$i]}." |
|||
fi |
|||
if [ "$j" -eq "$length" ] |
|||
then |
|||
sub+="${split[$i]}" |
|||
fi |
|||
done |
|||
domain="$(echo "$domain" | sed "s/$(sedEscape "$sub")\.//")" |
|||
|
|||
echo |
|||
echoMainTitle "Adding subdomain on plesk server" |
|||
echo |
|||
echoSubTitle "Please verify data" |
|||
echo |
|||
echo "-- $env" |
|||
echo "Domain: $domain" |
|||
echo "Sub: $sub" |
|||
echo |
|||
echo "Plesk host: $plesk_host" |
|||
echo "Plesk user: $plesk_user" |
|||
echo "Plesk private key: $plesk_private_key" |
|||
echo "Plesk public key: $plesk_public_key" |
|||
echo |
|||
confirm |
|||
|
|||
pleskAddSSHKey |
|||
|
|||
ssh "$plesk_user@$plesk_host" "plesk bin subdomain --create '$sub' -domain '$domain' -www-root '/$sub.$domain'" |
|||
|
|||
echo |
|||
echoSuccess "Subdomain has been created on plesk" |
|||
echo |
@ -0,0 +1,10 @@ |
|||
#!/bin/bash |
|||
|
|||
plesk_host='' |
|||
plesk_user='' |
|||
plesk_private_key='' |
|||
plesk_public_key='' |
|||
|
|||
plesk_db_type='mysql' |
|||
|
|||
plesk_binary='plesk' |
@ -0,0 +1,59 @@ |
|||
#!/bin/bash |
|||
|
|||
plesk_included=true |
|||
|
|||
function pleskValidate { |
|||
local env=$(getArgument "$1" "Usage: pleskValidate [live|stage]" "live stage") |
|||
|
|||
if [ "$ssh_included" == "" ] |
|||
then |
|||
echo >&2 |
|||
echoError "Plugin \"ssh\" has to be included" >&2 |
|||
echo >&2 |
|||
exit |
|||
fi |
|||
|
|||
if [ "$db_included" == "" ] |
|||
then |
|||
echo >&2 |
|||
echoError "Plugin \"db\" has to be included" >&2 |
|||
echo >&2 |
|||
exit |
|||
fi |
|||
|
|||
if [ "$plesk_host" == "" ] || [ "$plesk_user" == "" ] |
|||
then |
|||
echo >&2 |
|||
echoError "Please configure $project_manager_dir/data/$customer/$project/etc/plugins/plesk/config" >&2 |
|||
echo >&2 |
|||
exit |
|||
fi |
|||
|
|||
if [ "$(dbGetConfig "$env" "user")" == "" ] || [ "$(dbGetConfig "$env" "database")" == "" ] || [ "$(dbGetConfig "$env" "password")" == "" ] |
|||
then |
|||
echo >&2 |
|||
echoError "Please configure $project_manager_dir/data/$customer/$project/etc/plugins/db/config" >&2 |
|||
echo >&2 |
|||
exit |
|||
fi |
|||
} |
|||
|
|||
function pleskAddSSHKey { |
|||
if [ ! -f "$plesk_private_key" ] && [ ! -f "$app_dir/.ssh/plesk" ] |
|||
then |
|||
sshGenerateKey "plesk" |
|||
sshCopyIdKey "plesk" "$plesk_user@$plesk_host" "$app_dir/.ssh/plesk.pub" |
|||
fi |
|||
|
|||
if [ -f "$plesk_private_key" ] && [ ! -f "$app_dir/.ssh/plesk" ] |
|||
then |
|||
sshCopyKey "plesk" "$plesk_private_key" |
|||
fi |
|||
|
|||
if [ -f "$plesk_public_key" ] && [ ! -f "$app_dir/.ssh/plesk.pub" ] |
|||
then |
|||
sshCopyKey "plesk.pub" "$plesk_private_key" |
|||
fi |
|||
|
|||
ssh-add "$app_dir/.ssh/plesk" |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue