host-name

This commit is contained in:
Jackson Delahunt 2019-02-26 15:05:38 +11:00
parent 3c822f6c08
commit b5192162f0
9 changed files with 53 additions and 52 deletions

0
credentials/authenticate.sh Normal file → Executable file
View file

View file

@ -1,45 +1,47 @@
REPO_ROOT=$(dirname $(realpath $0))/../..
# Desktop environment container user
DESKTOP_ENVIRONMENT_USER=jackson
# Desktop environment user configuration
DESKTOP_ENVIRONMENT_CONTAINER=desktop-environment
DESKTOP_ENVIRONMENT_HOME=/$DESKTOP_ENVIRONMENT_USER/home
DESKTOP_ENVIRONMENT_REGISTRY=sabrehagen
DESKTOP_ENVIRONMENT_USER=jackson
# Desktop environment repository configuration
# Desktop environment host configuration
DESKTOP_ENVIRONMENT_HOST_HOME=/$DESKTOP_ENVIRONMENT_USER/home
echo DESKTOP_ENVIRONMENT_HOST_HOME=$DESKTOP_ENVIRONMENT_HOST_HOME
echo DESKTOP_ENVIRONMENT_HOST_REPOSITORY=/$DESKTOP_ENVIRONMENT_USER/$DESKTOP_ENVIRONMENT_CONTAINER
# Desktop environment repository information
echo DESKTOP_ENVIRONMENT_BRANCH=$(git --git-dir $REPO_ROOT/.git rev-parse --abbrev-ref HEAD)
echo DESKTOP_ENVIRONMENT_CONTAINER=$DESKTOP_ENVIRONMENT_CONTAINER
echo DESKTOP_ENVIRONMENT_HOME=$DESKTOP_ENVIRONMENT_HOME
echo DESKTOP_ENVIRONMENT_USER=$DESKTOP_ENVIRONMENT_USER
echo DESKTOP_ENVIRONMENT_REGISTRY=$DESKTOP_ENVIRONMENT_REGISTRY
echo DESKTOP_ENVIRONMENT_REPOSITORY=/$DESKTOP_ENVIRONMENT_USER/$DESKTOP_ENVIRONMENT_CONTAINER
echo DESKTOP_ENVIRONMENT_USER=$DESKTOP_ENVIRONMENT_USER
# Desktop environment application cache volumes
echo DESKTOP_ENVIRONMENT_CACHE_CERTIFICATES=$DESKTOP_ENVIRONMENT_HOME/.pki
echo DESKTOP_ENVIRONMENT_CACHE_CHROME=$DESKTOP_ENVIRONMENT_HOME/.cache/google-chrome
echo DESKTOP_ENVIRONMENT_CACHE_CODE=$DESKTOP_ENVIRONMENT_HOME/.vscode
echo DESKTOP_ENVIRONMENT_CACHE_SECRETS=$DESKTOP_ENVIRONMENT_HOME/.secrets
echo DESKTOP_ENVIRONMENT_CACHE_SSH=$DESKTOP_ENVIRONMENT_HOME/.ssh
echo DESKTOP_ENVIRONMENT_CACHE_STEMN=$DESKTOP_ENVIRONMENT_HOME/.stemn
echo DESKTOP_ENVIRONMENT_CACHE_VCSH=$DESKTOP_ENVIRONMENT_HOME/.config/vcsh/repo.d
echo DESKTOP_ENVIRONMENT_CACHE_VCSH_PRIVATE=$DESKTOP_ENVIRONMENT_HOME/.config/vcsh/repo-private.d
echo DESKTOP_ENVIRONMENT_CACHE_YARN=$DESKTOP_ENVIRONMENT_HOME/.cache/yarn
echo DESKTOP_ENVIRONMENT_CACHE_ZOOM=$DESKTOP_ENVIRONMENT_HOME/.cache/zoom
echo DESKTOP_ENVIRONMENT_CACHE_ZSH=$DESKTOP_ENVIRONMENT_HOME/.cache/zsh
echo DESKTOP_ENVIRONMENT_CACHE_CERTIFICATES=$DESKTOP_ENVIRONMENT_HOST_HOME/.pki
echo DESKTOP_ENVIRONMENT_CACHE_CHROME=$DESKTOP_ENVIRONMENT_HOST_HOME/.cache/google-chrome
echo DESKTOP_ENVIRONMENT_CACHE_CODE=$DESKTOP_ENVIRONMENT_HOST_HOME/.vscode
echo DESKTOP_ENVIRONMENT_CACHE_SECRETS=$DESKTOP_ENVIRONMENT_HOST_HOME/.secrets
echo DESKTOP_ENVIRONMENT_CACHE_SSH=$DESKTOP_ENVIRONMENT_HOST_HOME/.ssh
echo DESKTOP_ENVIRONMENT_CACHE_STEMN=$DESKTOP_ENVIRONMENT_HOST_HOME/.stemn
echo DESKTOP_ENVIRONMENT_CACHE_VCSH=$DESKTOP_ENVIRONMENT_HOST_HOME/.config/vcsh/repo.d
echo DESKTOP_ENVIRONMENT_CACHE_VCSH_PRIVATE=$DESKTOP_ENVIRONMENT_HOST_HOME/.config/vcsh/repo-private.d
echo DESKTOP_ENVIRONMENT_CACHE_YARN=$DESKTOP_ENVIRONMENT_HOST_HOME/.cache/yarn
echo DESKTOP_ENVIRONMENT_CACHE_ZOOM=$DESKTOP_ENVIRONMENT_HOST_HOME/.cache/zoom
echo DESKTOP_ENVIRONMENT_CACHE_ZSH=$DESKTOP_ENVIRONMENT_HOST_HOME/.cache/zsh
# Desktop environment application state volumes
echo DESKTOP_ENVIRONMENT_STATE_CHROME=$DESKTOP_ENVIRONMENT_HOME/.config/google-chrome
echo DESKTOP_ENVIRONMENT_STATE_CODE=$DESKTOP_ENVIRONMENT_HOME/.config/Code
echo DESKTOP_ENVIRONMENT_STATE_GITHUB=$DESKTOP_ENVIRONMENT_HOME/.config/github
echo DESKTOP_ENVIRONMENT_STATE_JUMP=$DESKTOP_ENVIRONMENT_HOME/.jump
echo DESKTOP_ENVIRONMENT_STATE_MUSIKCUBE=$DESKTOP_ENVIRONMENT_HOME/.musikcube
echo DESKTOP_ENVIRONMENT_STATE_ZOOM=$DESKTOP_ENVIRONMENT_HOME/.zoom
echo DESKTOP_ENVIRONMENT_STATE_CHROME=$DESKTOP_ENVIRONMENT_HOST_HOME/.config/google-chrome
echo DESKTOP_ENVIRONMENT_STATE_CODE=$DESKTOP_ENVIRONMENT_HOST_HOME/.config/Code
echo DESKTOP_ENVIRONMENT_STATE_GITHUB=$DESKTOP_ENVIRONMENT_HOST_HOME/.config/github
echo DESKTOP_ENVIRONMENT_STATE_JUMP=$DESKTOP_ENVIRONMENT_HOST_HOME/.jump
echo DESKTOP_ENVIRONMENT_STATE_MUSIKCUBE=$DESKTOP_ENVIRONMENT_HOST_HOME/.musikcube
echo DESKTOP_ENVIRONMENT_STATE_ZOOM=$DESKTOP_ENVIRONMENT_HOST_HOME/.zoom
# Desktop environment user state volumes
echo DESKTOP_ENVIRONMENT_USER_DOCUMENTS=$DESKTOP_ENVIRONMENT_HOME/Documents
echo DESKTOP_ENVIRONMENT_USER_DOWNLOADS=$DESKTOP_ENVIRONMENT_HOME/Downloads
echo DESKTOP_ENVIRONMENT_USER_HOME=$DESKTOP_ENVIRONMENT_HOME
echo DESKTOP_ENVIRONMENT_USER_MUSIC=$DESKTOP_ENVIRONMENT_HOME/Music
echo DESKTOP_ENVIRONMENT_USER_PICTURES=$DESKTOP_ENVIRONMENT_HOME/Pictures
echo DESKTOP_ENVIRONMENT_USER_DOCUMENTS=$DESKTOP_ENVIRONMENT_HOST_HOME/Documents
echo DESKTOP_ENVIRONMENT_USER_DOWNLOADS=$DESKTOP_ENVIRONMENT_HOST_HOME/Downloads
echo DESKTOP_ENVIRONMENT_USER_HOME=$DESKTOP_ENVIRONMENT_HOST_HOME
echo DESKTOP_ENVIRONMENT_USER_MUSIC=$DESKTOP_ENVIRONMENT_HOST_HOME/Music
echo DESKTOP_ENVIRONMENT_USER_PICTURES=$DESKTOP_ENVIRONMENT_HOST_HOME/Pictures
echo DESKTOP_ENVIRONMENT_USER_REPOSITORIES=/$DESKTOP_ENVIRONMENT_USER/repositories
echo DESKTOP_ENVIRONMENT_USER_VIDEOS=$DESKTOP_ENVIRONMENT_HOME/Videos
echo DESKTOP_ENVIRONMENT_USER_VIDEOS=$DESKTOP_ENVIRONMENT_HOST_HOME/Videos

View file

@ -29,7 +29,7 @@ docker run \
--volume /tmp/.X11-unix:/tmp/.X11-unix \
--volume /var/lib/docker:/var/lib/docker \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume $DESKTOP_ENVIRONMENT_HOME/.config/alacritty:$DESKTOP_ENVIRONMENT_HOME/.config/alacritty \
--volume $DESKTOP_ENVIRONMENT_HOST_HOME/.config/alacritty:$DESKTOP_ENVIRONMENT_HOST_HOME/.config/alacritty \
--volume DESKTOP_ENVIRONMENT_CACHE_CERTIFICATES:$DESKTOP_ENVIRONMENT_CACHE_CERTIFICATES \
--volume DESKTOP_ENVIRONMENT_CACHE_CHROME:$DESKTOP_ENVIRONMENT_CACHE_CHROME \
--volume DESKTOP_ENVIRONMENT_CACHE_CODE:$DESKTOP_ENVIRONMENT_CACHE_CODE \
@ -54,7 +54,6 @@ docker run \
--volume DESKTOP_ENVIRONMENT_USER_PICTURES:$DESKTOP_ENVIRONMENT_USER_PICTURES \
--volume DESKTOP_ENVIRONMENT_USER_REPOSITORIES:$DESKTOP_ENVIRONMENT_USER_REPOSITORIES \
--volume DESKTOP_ENVIRONMENT_USER_VIDEOS:$DESKTOP_ENVIRONMENT_USER_VIDEOS \
--workdir $DESKTOP_ENVIRONMENT_HOME \
$DESKTOP_ENVIRONMENT_REGISTRY/$DESKTOP_ENVIRONMENT_CONTAINER:$DESKTOP_ENVIRONMENT_BRANCH
# Wait until the desktop environment container is running before proceeding

View file

@ -10,13 +10,13 @@ REPO_ROOT=$(dirname $(realpath $0))/..
export $($REPO_ROOT/docker/scripts/environment.sh)
# Fork setup to desktop environment global location immediately
if [ ! "$REPO_ROOT" -ef "$DESKTOP_ENVIRONMENT_REPOSITORY" ]; then
if [ ! "$REPO_ROOT" -ef "$DESKTOP_ENVIRONMENT_HOST_REPOSITORY" ]; then
# Clone the desktop environment to the global location on the host
git clone https://github.com/$DESKTOP_ENVIRONMENT_REGISTRY/$DESKTOP_ENVIRONMENT_CONTAINER $DESKTOP_ENVIRONMENT_REPOSITORY
git clone https://github.com/$DESKTOP_ENVIRONMENT_REGISTRY/$DESKTOP_ENVIRONMENT_CONTAINER $DESKTOP_ENVIRONMENT_HOST_REPOSITORY
# Restart bootstrap from the global location
$DESKTOP_ENVIRONMENT_REPOSITORY/host/bootstrap.sh "$@"
$DESKTOP_ENVIRONMENT_HOST_REPOSITORY/host/bootstrap.sh "$@"
exit 0
fi
@ -49,7 +49,7 @@ echo '* soft nofile 1000000' >> /etc/security/limits.conf
echo '* hard nofile 1000000' >> /etc/security/limits.conf
# Start the desktop environment as the host user on system start
echo "@reboot $HOST_USER $DESKTOP_ENVIRONMENT_REPOSITORY/docker/scripts/start.sh" >> /etc/crontab
echo "@reboot $HOST_USER $DESKTOP_ENVIRONMENT_HOST_REPOSITORY/docker/scripts/start.sh" >> /etc/crontab
# Remove existing group with our docker group id that is not the docker group
DOCKER_GID=999
@ -111,7 +111,7 @@ usermod \
$HOST_USER
# Make desktop environment logs directory
mkdir $DESKTOP_ENVIRONMENT_REPOSITORY/logs
mkdir $DESKTOP_ENVIRONMENT_HOST_REPOSITORY/logs
# Take ownership of all files under the user's directory
chown -R $HOST_USER:$HOST_USER /$HOST_USER

View file

@ -15,7 +15,7 @@ docker run \
--workdir $DESKTOP_ENVIRONMENT_HOST_REPOSITORY \
hashicorp/packer:light build \
-force \
-var DESKTOP_ENVIRONMENT_USER=$DESKTOP_ENVIRONMENT_USER \
-var DESKTOP_ENVIRONMENT_CONTAINER=$DESKTOP_ENVIRONMENT_CONTAINER \
-var DESKTOP_ENVIRONMENT_REGISTRY=$DESKTOP_ENVIRONMENT_REGISTRY \
-var DESKTOP_ENVIRONMENT_REPOSITORY=$DESKTOP_ENVIRONMENT_REPOSITORY \
-var DESKTOP_ENVIRONMENT_USER=$DESKTOP_ENVIRONMENT_USER \
desktop-environment.json

View file

@ -5,8 +5,8 @@
"source_image_family": "ubuntu-minimal-1810",
"project_id": "stemnapp",
"zone": "australia-southeast1-a",
"instance_name": "packer-${var.DESKTOP_ENVIRONMENT_REGISTRY}-${var.DESKTOP_ENVIRONMENT_REPOSITORY}-{{timestamp}}",
"image_name": "${var.DESKTOP_ENVIRONMENT_REGISTRY}-${var.DESKTOP_ENVIRONMENT_REPOSITORY}",
"instance_name": "packer-${var.DESKTOP_ENVIRONMENT_REGISTRY}-${var.DESKTOP_ENVIRONMENT_CONTAINER}-{{timestamp}}",
"image_name": "${var.DESKTOP_ENVIRONMENT_REGISTRY}-${var.DESKTOP_ENVIRONMENT_CONTAINER}",
"ssh_username": "root"
}
],
@ -15,10 +15,10 @@
"type": "shell",
"inline": [
"# Clone the desktop environment repository",
"git clone https://github.com/${var.DESKTOP_ENVIRONMENT_REGISTRY}-${var.DESKTOP_ENVIRONMENT_REPOSITORY}",
"git clone https://github.com/${var.DESKTOP_ENVIRONMENT_REGISTRY}-${var.DESKTOP_ENVIRONMENT_CONTAINER}",
"# Bootstrap the host",
"${var.DESKTOP_ENVIRONMENT_REPOSITORY}/host/bootstrap.sh"
"${var.DESKTOP_ENVIRONMENT_HOST_REPOSITORY}/host/bootstrap.sh"
]
}
]

View file

@ -7,7 +7,7 @@ resource "random_id" "instance_id" {
}
locals {
environment_name = "${var.DESKTOP_ENVIRONMENT_REGISTRY}-${var.DESKTOP_ENVIRONMENT_REPOSITORY}-${random_id.instance_id.hex}"
environment_name = "${var.DESKTOP_ENVIRONMENT_REGISTRY}-${var.DESKTOP_ENVIRONMENT_CONTAINER}-${random_id.instance_id.hex}"
}
resource "google_compute_instance" "desktop-environment" {
@ -42,10 +42,10 @@ resource "google_compute_instance" "desktop-environment" {
inline = [
"# Clone the desktop environment",
"git clone https://github.com/${var.DESKTOP_ENVIRONMENT_REGISTRY}/${var.DESKTOP_ENVIRONMENT_REPOSITORY}",
"git clone https://github.com/${var.DESKTOP_ENVIRONMENT_REGISTRY}/${var.DESKTOP_ENVIRONMENT_CONTAINER}",
"# Start the desktop-environment",
"${var.DESKTOP_ENVIRONMENT_REPOSITORY}/host/bootstrap-cloud.sh",
"${var.DESKTOP_ENVIRONMENT_HOST_REPOSITORY}/host/bootstrap-cloud.sh",
]
}

View file

@ -15,8 +15,8 @@ docker run \
--workdir $DESKTOP_ENVIRONMENT_HOST_REPOSITORY \
hashicorp/terraform:light apply \
-auto-approve \
-var DESKTOP_ENVIRONMENT_USER=$DESKTOP_ENVIRONMENT_USER \
-var DESKTOP_ENVIRONMENT_CONTAINER=$DESKTOP_ENVIRONMENT_CONTAINER \
-var DESKTOP_ENVIRONMENT_REGISTRY=$DESKTOP_ENVIRONMENT_REGISTRY \
-var DESKTOP_ENVIRONMENT_REPOSITORY=$DESKTOP_ENVIRONMENT_REPOSITORY \
-var DESKTOP_ENVIRONMENT_USER=$DESKTOP_ENVIRONMENT_USER \
-var owner_host=$(hostname) \
-var owner_name=$(whoami)

View file

@ -1,13 +1,13 @@
variable "DESKTOP_ENVIRONMENT_USER" {
description = "The DESKTOP_ENVIRONMENT_USER environment variable."
variable "DESKTOP_ENVIRONMENT_CONTAINER" {
description = "The DESKTOP_ENVIRONMENT_CONTAINER environment variable."
}
variable "DESKTOP_ENVIRONMENT_REGISTRY" {
description = "The DESKTOP_ENVIRONMENT_REGISTRY environment variable."
}
variable "DESKTOP_ENVIRONMENT_REPOSITORY" {
description = "The DESKTOP_ENVIRONMENT_REPOSITORY environment variable."
variable "DESKTOP_ENVIRONMENT_USER" {
description = "The DESKTOP_ENVIRONMENT_USER environment variable."
}
variable "gcp_project" {