+ probes to use env vars for lxc projects
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,3 +1,3 @@
|
|||||||
*.retry
|
|
||||||
.idea
|
.idea
|
||||||
/secret
|
/secret
|
||||||
|
/ansible.cfg
|
13
envs/lxc/server/lxc.env.example
Normal file
13
envs/lxc/server/lxc.env.example
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
SERVER=proxmox_host
|
||||||
|
|
||||||
|
LXC_HOST=project_lxc_container
|
||||||
|
|
||||||
|
PLAYBOOK=nginx-site
|
||||||
|
|
||||||
|
# That is a project name and name of the HOME USER
|
||||||
|
# @see group_vars/all.yml
|
||||||
|
SITE_NAME=project_name
|
||||||
|
|
||||||
|
DOMAIN_NAME=project_domain_name
|
||||||
|
|
||||||
|
DATABASE_NAME=project_name
|
@ -8,6 +8,5 @@ keyring__keyserver: hkp://keyserver.ubuntu.com:80
|
|||||||
|
|
||||||
secret__levels: '.'
|
secret__levels: '.'
|
||||||
|
|
||||||
site_name: '{{ initial_site_name | d(lxc_host) }}'
|
|
||||||
home_user: '{{ (ansible_user != "root") | ternary(ansible_user, site_name) }}'
|
home_user: '{{ (ansible_user != "root") | ternary(ansible_user, site_name) }}'
|
||||||
...
|
...
|
||||||
|
@ -1,59 +1,58 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
SERVER=$1
|
source $1
|
||||||
LXC_HOST=$2
|
|
||||||
PLAYBOOK=$3
|
|
||||||
|
|
||||||
while [[ "$#" -gt 0 ]]; do
|
|
||||||
case $1 in
|
|
||||||
-f|--force) force=1; shift ;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "Usage: run-lxc-playbook.sh server lxc_host playbook"
|
echo "Usage: run-lxc-playbook.sh path/to/env"
|
||||||
echo "server - main proxmox server IP address and lxc_host that the name of lxc container"
|
|
||||||
echo "lxc_host - name of lxc container"
|
|
||||||
echo "playbook - playbook file"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ -z "$SERVER" ]]; then
|
if [[ -z "$SERVER" ]]; then
|
||||||
echo "You must defined SERVER as first argument"
|
echo "You must defined SERVER"
|
||||||
usage
|
usage
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "$LXC_HOST" ]]; then
|
if [[ -z "$LXC_HOST" ]]; then
|
||||||
echo "You must defined LXC_HOST as second argument"
|
echo "You must defined LXC_HOST"
|
||||||
usage
|
usage
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "$PLAYBOOK" ]]; then
|
if [[ -z "$PLAYBOOK" ]]; then
|
||||||
echo "You must defined PLAYBOOK as third argument"
|
echo "You must defined PLAYBOOK"
|
||||||
usage
|
usage
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -f "$PLAYBOOK" ]]; then
|
PLAYBOOK_FILEPATH="playbooks/$PLAYBOOK.yml"
|
||||||
echo "Playbook file is not exists: $PLAYBOOK"
|
if [[ ! -f "$PLAYBOOK_FILEPATH" ]]; then
|
||||||
|
echo "Playbook file is not exists: $PLAYBOOK_FILEPATH"
|
||||||
usage
|
usage
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
COMMAND=$(cat <<EOF
|
if [[ -z "$SITE_NAME" ]]; then
|
||||||
ansible-playbook -e "lxc_host=$LXC_HOST" -e="domain_name=$LXC_HOST" -e runner=lxc --ssh-common-args="-o ProxyCommand='ssh -W %h:%p -q root@$SERVER'" $PLAYBOOK
|
echo "You must defined SITE_NAME"
|
||||||
EOF
|
usage
|
||||||
)
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -z "$force" ]]; then
|
if [[ -z "$DOMAIN_NAME" ]]; then
|
||||||
printf 'Launch ansible playbook:\n%s\n' "$COMMAND"
|
echo "You must defined DOMAIN_NAME"
|
||||||
read -p "Are you sure? " -n 1 -r
|
usage
|
||||||
echo # (optional) move to a new line
|
exit 1
|
||||||
if [[ $REPLY =~ ^[Yyн]$ ]]
|
|
||||||
then
|
|
||||||
/bin/bash -c "$COMMAND"
|
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
/bin/bash -c "$COMMAND"
|
if [[ -z "$DATABASE_NAME" ]]; then
|
||||||
|
echo "You must defined DATABASE_NAME"
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
ansible-playbook \
|
||||||
|
-e "lxc_host=$LXC_HOST" \
|
||||||
|
-e "site_name=$SITE_NAME" \
|
||||||
|
-e "domain_name=$DOMAIN_NAME" \
|
||||||
|
-e "database_name=$DATABASE_NAME" \
|
||||||
|
-e "runner=lxc" \
|
||||||
|
--ssh-common-args="-o ProxyCommand='ssh -W %h:%p -q root@$SERVER'" \
|
||||||
|
$PLAYBOOK_FILEPATH
|
Reference in New Issue
Block a user