aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jonas Gunz <himself@jonasgunz.de> 2020-05-28 21:08:24 +0200
committerGravatar Jonas Gunz <himself@jonasgunz.de> 2020-05-28 21:08:24 +0200
commitb07a88ed2d9e42ca49f97b3052ff13aa6e1c35c6 (patch)
treee1af9e0117302806f4f286b4931994a11f9f4e16
parent5bd29e9fb8a015f25ab57801b5acb04c964b5720 (diff)
downloadltask-b07a88ed2d9e42ca49f97b3052ff13aa6e1c35c6.tar.gz
added tasks
-rwxr-xr-xltask4
-rw-r--r--tasks/apt-update23
-rw-r--r--tasks/initial-user-setup53
-rw-r--r--tasks/reboot23
4 files changed, 103 insertions, 0 deletions
diff --git a/ltask b/ltask
index ddbee06..0e10339 100755
--- a/ltask
+++ b/ltask
@@ -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