Updated tools for new version and add agent scipt

This commit is contained in:
2021-01-17 01:24:25 +01:00
parent e9e0e8a186
commit 66a02d9175
12 changed files with 341 additions and 1 deletions

106
Agent/Kickstart_template Normal file
View File

@@ -0,0 +1,106 @@
#!/bin/sh
# This file is a template which gets run through the "/kickstart.sh" route to
# generate the final script file. PLEASE NEVER RUN THIS FILE DIRECTLY, instead
# run me with:
#
# sh <(curl -Ss "http://<SERVER-ADDRESS>/kickstart.sh?tenant_id=<TENANT-ID>")
#
# Where:
# <SERVER-ADDRESS> is the ShellHub server address
# <TENANT-ID> is your tenant ID
#
# List of URL parameters of /kickstart.sh URL:
#
# keepalive_interval = Specifies in seconds the keep alive message interval
# preferred_hostname = The preferred hostname to use rather than generated
# value from ethernet MAC address
while true; do
read -p "Do you wana use docker or native agent (D/N)" dn
case $dn in
[Nn]* )
#Native install Methode
mkdir /opt/ShellHub
wget {{scheme}}://{{host}}/agent-amd64 -O /opt/ShellHub/agent
chmod +x /opt/ShellHub/agent
echo "" >>/etc/systemd/system/ShellHubAgent.service
echo "[Unit]" >>/etc/systemd/system/ShellHubAgent.service
echo "Description=ShellHub Api" >>/etc/systemd/system/ShellHubAgent.service
echo "Wants=network-online.target" >>/etc/systemd/system/ShellHubAgent.service
echo "[Service]" >>/etc/systemd/system/ShellHubAgent.service
echo "Type=simple" >>/etc/systemd/system/ShellHubAgent.service
echo "Environment=SHELLHUB_PRIVATE_KEY=/opt/ShellHub/shellhubAgent.key" >>/etc/systemd/system/ShellHubAgent.service
echo "Environment=SHELLHUB_TENANT_ID={{tenant_id}}" >>/etc/systemd/system/ShellHubAgent.service
echo "Environment=SHELLHUB_SERVER_ADDRESS={{scheme}}://{{host}}" >>/etc/systemd/system/ShellHubAgent.service
{% if keepalive_interval ~= '' and keepalive_interval ~= nil then %}
echo "Environment=SHELLHUB_KEEPALIVE_INTERVAL={{keepalive_interval}}" >>/etc/systemd/system/ShellHubAgent.service
{% end %}
{% if preferred_hostname ~= '' and preferred_hostname ~= nil then %}
echo "Environment=SHELLHUB_PREFERRED_HOSTNAME={{preferred_hostname}}" >>/etc/systemd/system/ShellHubAgent.service
{% end %}
echo "ExecStart=/opt/ShellHub/agent" >>/etc/systemd/system/ShellHubAgent.service
echo "[Install]" >>/etc/systemd/system/ShellHubAgent.service
echo "WantedBy=multi-user.target" >>/etc/systemd/system/ShellHubAgent.service
if [ "$(grep -oP '(?<=^PLATFORM_ID=).+' /etc/os-release | tr -d '"')" = "platform:el8" ]; then
##Resetting reseting service permissions
restorecon -Rv /etc/systemd/system
fi
systemctl enable --now ShellHubAgent
exit;;
[Dd]* )
break;;
* ) echo "Please answer D(ocker) or N(ative).";;
esac
done
#Docker install Methode
type docker > /dev/null 2>&1 || { echo "Docker is not instaled"; exit 1; }
if ! docker info > /dev/null 2>&1; then
cat <<EOF
Docker is not running or your current user is not in docker group.
You need to manually add your current user to docker group or run this installer using sudo.
EOF
while true; do
echo -n "Do you want to run the installer using sudo? [y/N] "
read yn
case $yn in
[Yy]|YES|yes) SUDO="sudo"; break;;
[Nn]|NO|no|"") echo "It cannot proceed, exiting"; exit;;
*) echo "Please answer 'yes' or 'no'.";;
esac
done
fi
$SUDO docker run -d \
--name=shellhub \
--restart=on-failure \
--privileged \
--net=host \
--pid=host \
-v /:/host \
-v /dev:/dev \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/passwd:/etc/passwd \
-v /etc/group:/etc/group \
-v /var/run:/var/run \
-v /var/log:/var/log \
-e SHELLHUB_SERVER_ADDRESS={{scheme}}://{{host}} \
-e SHELLHUB_PRIVATE_KEY=/host/etc/shellhub.key \
-e SHELLHUB_TENANT_ID={{tenant_id}} \
{% if keepalive_interval ~= '' and keepalive_interval ~= nil then %}
-e SHELLHUB_KEEPALIVE_INTERVAL={{keepalive_interval}} \
{% end %}
{% if preferred_hostname ~= '' and preferred_hostname ~= nil then %}
-e SHELLHUB_PREFERRED_HOSTNAME={{preferred_hostname}} \
{% end %}
shellhubio/agent:{{version}}