parent
ab1353603d
commit
fff4b10a41
250
abra
250
abra
@ -510,11 +510,14 @@ sub_app_ls (){
|
|||||||
help_app_list (){
|
help_app_list (){
|
||||||
echo "abra [options] app (list|ls) [--status] [--server=<server>]
|
echo "abra [options] app (list|ls) [--status] [--server=<server>]
|
||||||
|
|
||||||
List your exciting apps
|
List your exciting apps.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
--status Show whether apps are deployed (warning! slow!)
|
--status Show whether apps are deployed (warning! slow!)
|
||||||
--server=<server> Filter to a specific server"
|
--server=<server> Filter to a specific server
|
||||||
|
|
||||||
|
POWERED BY (for --status)
|
||||||
|
docker stack ls"
|
||||||
}
|
}
|
||||||
|
|
||||||
sub_app_list (){
|
sub_app_list (){
|
||||||
@ -588,7 +591,7 @@ sub_app_list (){
|
|||||||
help_app_new (){
|
help_app_new (){
|
||||||
echo "abra [options] app new [--server=<server>] [--domain=<domain>] [--pass] [--auto] <type>
|
echo "abra [options] app new [--server=<server>] [--domain=<domain>] [--pass] [--auto] <type>
|
||||||
|
|
||||||
Create a new app of <type> (e.g. wordpress or custom-html)
|
Create a new app of <type> (e.g. wordpress or custom-html).
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
--server=<server> Specify which server to use (default: prompt)
|
--server=<server> Specify which server to use (default: prompt)
|
||||||
@ -669,15 +672,19 @@ sub_app_new (){
|
|||||||
echo " abra app $APP_NAME deploy$(tput sgr0)"
|
echo " abra app $APP_NAME deploy$(tput sgr0)"
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. app <domain> deploy
|
###### .. app deploy
|
||||||
help_app_deploy (){
|
help_app_deploy (){
|
||||||
echo "abra [options] app <domain> deploy [--skip-check]
|
echo "abra [options] app <domain> deploy [--skip-check]
|
||||||
|
|
||||||
Deploy app <domain> to the configured server
|
Deploy app <domain> to the configured server.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
--skip-check Don't check whether app definition is up-to-date first"
|
--skip-check Don't check whether app definition is up-to-date first
|
||||||
|
|
||||||
|
POWERED BY
|
||||||
|
docker stack deploy -c compose.yml <app>"
|
||||||
}
|
}
|
||||||
|
|
||||||
sub_app_deploy (){
|
sub_app_deploy (){
|
||||||
load_instance
|
load_instance
|
||||||
load_instance_env
|
load_instance_env
|
||||||
@ -725,6 +732,15 @@ sub_app_deploy (){
|
|||||||
}
|
}
|
||||||
|
|
||||||
###### .. app <domain> undeploy
|
###### .. app <domain> undeploy
|
||||||
|
help_app_undeploy (){
|
||||||
|
echo "abra [options] app <app> undeploy
|
||||||
|
|
||||||
|
Opposite of \`app <app> deploy\`; deactivate an app without deleting anything.
|
||||||
|
|
||||||
|
POWERED BY
|
||||||
|
docker stack rm <app>"
|
||||||
|
}
|
||||||
|
|
||||||
sub_app_undeploy (){
|
sub_app_undeploy (){
|
||||||
load_instance
|
load_instance
|
||||||
load_instance_env
|
load_instance_env
|
||||||
@ -735,7 +751,13 @@ sub_app_undeploy (){
|
|||||||
docker stack rm "$STACK_NAME"
|
docker stack rm "$STACK_NAME"
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. app <domain> config
|
###### .. app config
|
||||||
|
help_app_config (){
|
||||||
|
echo "abra [options] app <app> config
|
||||||
|
|
||||||
|
Open the app configuration in \$EDITOR."
|
||||||
|
}
|
||||||
|
|
||||||
sub_app_config (){
|
sub_app_config (){
|
||||||
load_instance
|
load_instance
|
||||||
|
|
||||||
@ -768,6 +790,12 @@ sub_app_config (){
|
|||||||
}
|
}
|
||||||
|
|
||||||
###### .. app check
|
###### .. app check
|
||||||
|
help_app_check (){
|
||||||
|
echo "abra [options] app <app> check
|
||||||
|
|
||||||
|
Make sure that all an app's required variables are set."
|
||||||
|
}
|
||||||
|
|
||||||
sub_app_check (){
|
sub_app_check (){
|
||||||
load_instance
|
load_instance
|
||||||
load_instance_env
|
load_instance_env
|
||||||
@ -789,6 +817,15 @@ sub_app_check (){
|
|||||||
}
|
}
|
||||||
|
|
||||||
###### .. app ps
|
###### .. app ps
|
||||||
|
help_app_ps (){
|
||||||
|
echo "abra [options] app <app> ps
|
||||||
|
|
||||||
|
Show <app>'s running containers.
|
||||||
|
|
||||||
|
POWERED BY
|
||||||
|
docker stack ps <app>"
|
||||||
|
}
|
||||||
|
|
||||||
sub_app_ps (){
|
sub_app_ps (){
|
||||||
load_instance
|
load_instance
|
||||||
load_instance_env
|
load_instance_env
|
||||||
@ -796,11 +833,24 @@ sub_app_ps (){
|
|||||||
docker stack ps "$STACK_NAME"
|
docker stack ps "$STACK_NAME"
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. app <domain> delete
|
###### .. app delete
|
||||||
|
help_app_rm (){
|
||||||
|
help_app_delete
|
||||||
|
}
|
||||||
|
|
||||||
sub_app_rm (){
|
sub_app_rm (){
|
||||||
sub_app_delete
|
sub_app_delete
|
||||||
}
|
}
|
||||||
|
|
||||||
|
help_app_delete (){
|
||||||
|
echo "abra [options] app <app> (rm|delete) [--force]
|
||||||
|
|
||||||
|
Delete local configuration for <app>.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
--force Live dangerously; skip prompt for confirmation"
|
||||||
|
}
|
||||||
|
|
||||||
sub_app_delete (){
|
sub_app_delete (){
|
||||||
load_instance
|
load_instance
|
||||||
load_instance_env
|
load_instance_env
|
||||||
@ -813,7 +863,15 @@ sub_app_delete (){
|
|||||||
rm "$ENV_FILE"
|
rm "$ENV_FILE"
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. app <domain> secret insert
|
###### .. app secret insert
|
||||||
|
help_app_secret_insert (){
|
||||||
|
echo "abra [options] app <app> secret insert <secret> <version> <data> [--pass]
|
||||||
|
|
||||||
|
Store <data> as a Docker secret called <secret>_<version>.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
--pass Save the secret in \`pass\` as well"
|
||||||
|
}
|
||||||
sub_app_secret_insert() {
|
sub_app_secret_insert() {
|
||||||
load_instance
|
load_instance
|
||||||
load_instance_env
|
load_instance_env
|
||||||
@ -836,12 +894,27 @@ sub_app_secret_insert() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. app <domain> secret delete
|
###### .. app secret delete
|
||||||
sub_app_secret_delete(){
|
help_app_secret_rm (){
|
||||||
sub_app_secret_rm
|
help_app_secret_delete
|
||||||
}
|
}
|
||||||
|
|
||||||
sub_app_secret_rm(){
|
sub_app_secret_rm(){
|
||||||
|
sub_app_secret_delete
|
||||||
|
}
|
||||||
|
|
||||||
|
help_app_secret_delete (){
|
||||||
|
echo "abra [options] app <app> secret (delete|rm) (<secret>|--all) [--pass] [--force]
|
||||||
|
|
||||||
|
Remove <app>'s Docker secret <secret>.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
--pass Remove secret(s) from \`pass\` as well
|
||||||
|
--all Delete all secrets for <app>
|
||||||
|
--force Live dangerously; skip prompt for confirmation"
|
||||||
|
}
|
||||||
|
|
||||||
|
sub_app_secret_delete(){
|
||||||
load_instance
|
load_instance
|
||||||
load_instance_env
|
load_instance_env
|
||||||
|
|
||||||
@ -870,7 +943,17 @@ sub_app_secret_rm(){
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. app <domain> secret generate
|
###### .. app secret generate
|
||||||
|
help_app_secret_generate (){
|
||||||
|
echo "abra [options] app <app> secret generate <secret> <version> [<cmd>] [--pass]
|
||||||
|
|
||||||
|
Generate <secret>_<version> for <app> and store as a Docker secret.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
<cmd> Run <cmd> to generate secret (default: pwqgen)
|
||||||
|
--pass Save generated secrets in \`pass\`"
|
||||||
|
}
|
||||||
|
|
||||||
sub_app_secret_generate(){
|
sub_app_secret_generate(){
|
||||||
load_instance
|
load_instance
|
||||||
load_instance_env
|
load_instance_env
|
||||||
@ -917,7 +1000,26 @@ sub_app_secret_auto(){
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. app <domain> run <args>...
|
###### .. app run
|
||||||
|
help_app_run (){
|
||||||
|
echo "abra [options] app <app> run [--no-tty] [--user=<user>] <service> <args>...
|
||||||
|
|
||||||
|
Run <args>... (often something like 'bash' or 'sh') in <app>'s <service>
|
||||||
|
container.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
--no-tty Don't allocate a TTY; sometimes running \`mysql\` enjoys this
|
||||||
|
--user=<user> Run as the UNIX user <user>, e.g. for running Wordpress-CLI
|
||||||
|
as www-data
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
abra wordpress_foo_bar run app bash
|
||||||
|
|
||||||
|
POWERED BY
|
||||||
|
CONTAINER_ID=\$(docker container ls -f ...)
|
||||||
|
docker exec \$CONTAINER_ID ..."
|
||||||
|
}
|
||||||
|
|
||||||
sub_app_run(){
|
sub_app_run(){
|
||||||
load_instance
|
load_instance
|
||||||
load_instance_env
|
load_instance_env
|
||||||
@ -948,7 +1050,23 @@ sub_app_run(){
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. app <domain> logs <service> <args>...
|
###### .. app logs
|
||||||
|
help_app_logs (){
|
||||||
|
echo "abra [options] app <app> logs [<service>]
|
||||||
|
|
||||||
|
Show logs for <app>.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
<service> Only show logs for a specific service (default: combine all
|
||||||
|
services)
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
abra wordpress_foo_bar logs app
|
||||||
|
|
||||||
|
POWERED BY
|
||||||
|
docker service logs"
|
||||||
|
}
|
||||||
|
|
||||||
sub_app_logs (){
|
sub_app_logs (){
|
||||||
load_instance
|
load_instance
|
||||||
load_instance_env
|
load_instance_env
|
||||||
@ -978,7 +1096,29 @@ sub_app_logs (){
|
|||||||
docker service logs "${STACK_NAME}_${SERVICE}" $LOGS_ARGS
|
docker service logs "${STACK_NAME}_${SERVICE}" $LOGS_ARGS
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. app <domain> cp <src> <dst>
|
###### .. app cp
|
||||||
|
help_app_cp (){
|
||||||
|
echo "abra [options] app <app> cp <src> <dst>
|
||||||
|
|
||||||
|
Copy files to or from a running container.
|
||||||
|
|
||||||
|
One of <src> or <dst> must have the format <service>:<path>.
|
||||||
|
|
||||||
|
Copying multiple files is possible using \`tar\`, see EXAMPLES.
|
||||||
|
|
||||||
|
If <dst> is a file then it will be over-written, if it is a folder then <src>
|
||||||
|
will be copied into it.
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
abra customhtml_foo_bar_com cp index.html app:/usr/share/nginx/html/
|
||||||
|
tar cf - wp-content | abra wordpress_bar_bat_com cp - app:/var/www/html/
|
||||||
|
|
||||||
|
POWERED BY
|
||||||
|
CONTAINER_ID=\$(docker container ls -f ...)
|
||||||
|
docker cp \$CONTAINER_ID:<src> <dst>
|
||||||
|
docker cp \$CONTAINER_ID:<dst> <src>"
|
||||||
|
}
|
||||||
|
|
||||||
sub_app_cp() {
|
sub_app_cp() {
|
||||||
load_instance
|
load_instance
|
||||||
load_instance_env
|
load_instance_env
|
||||||
@ -1018,10 +1158,20 @@ sub_app_cp() {
|
|||||||
#######################################
|
#######################################
|
||||||
|
|
||||||
###### .. server ls
|
###### .. server ls
|
||||||
|
help_server_ls (){
|
||||||
|
help_server_list
|
||||||
|
}
|
||||||
|
|
||||||
sub_server_ls() {
|
sub_server_ls() {
|
||||||
sub_server_list
|
sub_server_list
|
||||||
}
|
}
|
||||||
|
|
||||||
|
help_server_list (){
|
||||||
|
echo "abra [options] server (list|ls)
|
||||||
|
|
||||||
|
List locally-defined servers."
|
||||||
|
}
|
||||||
|
|
||||||
sub_server_list() {
|
sub_server_list() {
|
||||||
get_servers
|
get_servers
|
||||||
printf "%s servers:\n\n" "${#SERVERS[@]}"
|
printf "%s servers:\n\n" "${#SERVERS[@]}"
|
||||||
@ -1030,7 +1180,17 @@ sub_server_list() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. server init <host>
|
###### .. server init
|
||||||
|
help_server_init (){
|
||||||
|
echo "abra [options] server init
|
||||||
|
|
||||||
|
Set up a server for Docker swarm joy.
|
||||||
|
|
||||||
|
POWERED BY
|
||||||
|
docker swarm init
|
||||||
|
docker network create ..."
|
||||||
|
}
|
||||||
|
|
||||||
sub_server_init() {
|
sub_server_init() {
|
||||||
export DOCKER_CONTEXT="${abra__host_}"
|
export DOCKER_CONTEXT="${abra__host_}"
|
||||||
|
|
||||||
@ -1040,7 +1200,19 @@ sub_server_init() {
|
|||||||
docker network create --driver=overlay proxy --scope swarm || true
|
docker network create --driver=overlay proxy --scope swarm || true
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. server <add> <host> [<username>] [<password>]
|
###### .. server add
|
||||||
|
help_server_add (){
|
||||||
|
echo "abra [options] server add <host> [<user>] [<port>]
|
||||||
|
|
||||||
|
Add a server, reachable on <host>.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
<user>, <port> SSH connection details
|
||||||
|
|
||||||
|
POWERED BY
|
||||||
|
docker context create ..."
|
||||||
|
}
|
||||||
|
|
||||||
sub_server_add() {
|
sub_server_add() {
|
||||||
require_abra_dir
|
require_abra_dir
|
||||||
|
|
||||||
@ -1064,14 +1236,40 @@ sub_server_add() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
###### .. server <host> delete
|
###### .. server <host> delete
|
||||||
|
help_server_rm (){
|
||||||
|
help_server_delete
|
||||||
|
}
|
||||||
|
|
||||||
sub_server_rm() {
|
sub_server_rm() {
|
||||||
sub_server_delete
|
sub_server_delete
|
||||||
}
|
}
|
||||||
|
|
||||||
|
help_server_delete (){
|
||||||
|
echo "abra [options] server <host> delete
|
||||||
|
|
||||||
|
Remove server <host>
|
||||||
|
|
||||||
|
POWERED BY
|
||||||
|
docker context rm ..."
|
||||||
|
}
|
||||||
|
|
||||||
sub_server_delete() {
|
sub_server_delete() {
|
||||||
docker context rm "$abra__host_"
|
docker context rm "$abra__host_"
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. server <host> apps
|
###### .. server <host> apps
|
||||||
|
help_server_apps (){
|
||||||
|
echo "abra [options] server <host> apps [--status]
|
||||||
|
|
||||||
|
Alias for \`abra app ls --server=<host>.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
--status Show whether apps are deployed (warning! slow!)
|
||||||
|
|
||||||
|
POWERED BY (for --status)
|
||||||
|
docker stack ls"
|
||||||
|
}
|
||||||
|
|
||||||
sub_server_apps() {
|
sub_server_apps() {
|
||||||
abra___server="$abra__host_"
|
abra___server="$abra__host_"
|
||||||
sub_app_list
|
sub_app_list
|
||||||
@ -1082,16 +1280,32 @@ sub_server_apps() {
|
|||||||
#######################################
|
#######################################
|
||||||
|
|
||||||
###### .. upgrade
|
###### .. upgrade
|
||||||
|
help_upgrade (){
|
||||||
|
echo "abra [options] upgrade
|
||||||
|
|
||||||
|
Upgrade abra itself, using the online installer script."
|
||||||
|
}
|
||||||
|
|
||||||
sub_upgrade() {
|
sub_upgrade() {
|
||||||
curl https://install.abra.autonomic.zone | bash
|
curl https://install.abra.autonomic.zone | bash
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. version
|
###### .. version
|
||||||
|
help_version (){
|
||||||
|
echo "abra [options] version
|
||||||
|
|
||||||
|
Show the installed version of abra (currently $ABRA_VERSION)."
|
||||||
|
}
|
||||||
|
|
||||||
sub_version() {
|
sub_version() {
|
||||||
echo "$ABRA_VERSION"
|
echo "$ABRA_VERSION"
|
||||||
}
|
}
|
||||||
|
|
||||||
###### .. help
|
###### .. help
|
||||||
|
help_help (){
|
||||||
|
echo "HEEEEEELP! 😱"
|
||||||
|
}
|
||||||
|
|
||||||
sub_help() {
|
sub_help() {
|
||||||
SUBCOMMAND=$(IFS="_"; echo "${abra__subcommands_[*]}")
|
SUBCOMMAND=$(IFS="_"; echo "${abra__subcommands_[*]}")
|
||||||
if [ -z "$SUBCOMMAND" ]; then
|
if [ -z "$SUBCOMMAND" ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user