diff options
-rwxr-xr-x | ltask | 4 | ||||
-rw-r--r-- | tasks/apt-update | 23 | ||||
-rw-r--r-- | tasks/initial-user-setup | 53 | ||||
-rw-r--r-- | tasks/reboot | 23 |
4 files changed, 103 insertions, 0 deletions
@@ -36,6 +36,7 @@ TASK= TARGET= HOSTS=() +FILES=() #block run when sourcing task export readonly HOSTMODE="yes" @@ -110,6 +111,9 @@ for hoststring in "${HOSTS_UNIQUE[@]}"; do [ ! -z $port ] && rexecargs+="-p $port " [ ! -z $SSH_IDENTITY_FILE ] && rexecargs+="-i $SSH_IDENTITY_FILE " [ ! -z $SSH_USER ] && rexecargs="$SSH_USER@" + + [ ${#FILES[@]} -gt 0 ] && scp -P ${port:=22} ${FILES[@]} ${SSH_USER:=$USER}@$hostname: + rexecargs+="$hostname " rexecargs+="$TASK_DIR/$TASK" diff --git a/tasks/apt-update b/tasks/apt-update new file mode 100644 index 0000000..38693b3 --- /dev/null +++ b/tasks/apt-update @@ -0,0 +1,23 @@ +#!/bin/bash + +function task_exec() { + sudo apt-get -y update + sudo apt-get -y upgrade +} + +function task_setup() { + # Available environment variables + # $ASSET_DIR + # $TOOL_DIR + + SSH_USER=server + SSH_IDENTITY_FILE=$ASSET_DIR/id_rsa + + TASK_ISSET="yes" +} + +if [ -z $HOSTMODE ]; then + task_exec +else + task_setup +fi diff --git a/tasks/initial-user-setup b/tasks/initial-user-setup new file mode 100644 index 0000000..fb402bb --- /dev/null +++ b/tasks/initial-user-setup @@ -0,0 +1,53 @@ +#!/bin/bash + +function task_exec() { + source /etc/os-release + case $ID in + arch) + pacman -Sy + INSTALL_CMD="pacman --noconfirm -S";; + debian) + apt update + INSTALL_CMD="apt-get install -y" + esac + + PACKAGES="sudo vim git" + [ ! -z "$INSTALL_CMD" ] && $INSTALL_CMD $PACKAGES + + groupadd sudo + useradd -s /bin/bash -d /home/server -m -U -G sudo server + + tee /etc/sudoers.d/autosetup_sudoconf << EOF +# Configured by lTask +%sudo ALL=(ALL) NOPASSWD: ALL +EOF + su server << EOF +cd +mkdir .ssh; cd .ssh +touch authorized_keys +EOF + + cat id_user.pub >> /home/server/.ssh/authorized_keys + cat id_jenkins.pub >> /home/server/.ssh/authorized_keys + + echo > /etc/motd +} + +function task_setup() { + # Available environment variables + # $ASSET_DIR + # $TOOL_DIR + + SSH_USER=root + #SSH_IDENTITY_FILE=$ASSET_DIR/id_jenkins + + FILES+=("$ASSET_DIR/id_user.pub" "$ASSET_DIR/id_jenkins.pub") + + TASK_ISSET="yes" +} + +if [ -z $HOSTMODE ]; then + task_exec +else + task_setup +fi diff --git a/tasks/reboot b/tasks/reboot new file mode 100644 index 0000000..3027502 --- /dev/null +++ b/tasks/reboot @@ -0,0 +1,23 @@ +#!/bin/bash + +function task_exec() { + wall "Going down for reboot now." + sudo reboot +} + +function task_setup() { + # Available environment variables + # $ASSET_DIR + # $TOOL_DIR + + SSH_USER=server + SSH_IDENTITY_FILE=$ASSET_DIR/id_rsa + + TASK_ISSET="yes" +} + +if [ -z $HOSTMODE ]; then + task_exec +else + task_setup +fi |