diff --git a/README.md b/README.md index 6b4191c..47e6815 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # ansible-rundeck + Scripts and Dockerfile for creation of an ansible host with rundeck diff --git a/ansible-rundeck-docker/Dockerfile b/ansible-rundeck-docker/Dockerfile new file mode 100644 index 0000000..f7d897f --- /dev/null +++ b/ansible-rundeck-docker/Dockerfile @@ -0,0 +1,23 @@ +FROM rundeck/rundeck:4.4.0 + +# minimal rundeck with ansible +# no mariadb + +USER root + +RUN apt-get -y update && \ + apt-get -y install \ + apt-transport-https \ + python3-pip + +RUN pip install --upgrade pip + +RUN pip install ansible + +USER rundeck + + +#VOLUME ["/home/rundeck/server/data"] + +#EXPOSE 4440 +#ENTRYPOINT [ "docker-lib/entry.sh" ] \ No newline at end of file diff --git a/ansible-rundeck-docker/docker-compose.yaml b/ansible-rundeck-docker/docker-compose.yaml new file mode 100644 index 0000000..2d11b4b --- /dev/null +++ b/ansible-rundeck-docker/docker-compose.yaml @@ -0,0 +1,14 @@ +# rundeck-ansible + +version: '3' + +services: + + rundeck: + build: . + container_name: rundeck + restart: on-failure:5 + environment: + RUNDECK_GRAILS_URL: http://127.0.0.1:4440 + ports: + - 4440:4440 diff --git a/install_ansible_rundeck.sh b/install_ansible_rundeck.sh new file mode 100644 index 0000000..b8f148d --- /dev/null +++ b/install_ansible_rundeck.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +# this script installs ansible and rundeck on a +# vanilla debian 11 +# RUN AS ROOT! + +apt update +apt -y upgrade +apt install -y python3 pip sudo wget curl +useradd -m -G sudo -s /bin/bash rundeck +# passwd rundeck +pip install ansible + +curl https://raw.githubusercontent.com/rundeck/packaging/main/scripts/deb-setup.sh 2> /dev/null | sudo bash -s rundeck +apt update +apt -y install rundeck +sed -i s/localhost/`hostname`/g /etc/rundeck/framework.properties +sed -i s/localhost/`hostname`/g /etc/rundeck/rundeck-config.properties + +# optional: move to mariadb + +# install mariadb +apt install -y mariadb-server +# create rundeck db +mysql -u root -e 'create database rundeck' +# create user, random pass and grant access +RANDOMPASSWORD=`date +%s | sha256sum | base64 | head -c 32` +mysql -u root -e "create user rundeck@localhost identified by '$RANDOMPASSWORD'" +mysql -u root -e 'grant ALL on rundeck.* to rundeck@localhost' +# update the rundeck config +sed -i s/^dataSource.url/\#dataSource.url/g /etc/rundeck/rundeck-config.properties +echo 'dataSource.driverClassName = org.mariadb.jdbc.Driver'>>/etc/rundeck/rundeck-config.properties +echo 'dataSource.url = jdbc:mysql://localhost/rundeck?autoReconnect=true&useSSL=false' >>/etc/rundeck/rundeck-config.properties +echo 'dataSource.username = rundeck' >>/etc/rundeck/rundeck-config.properties +echo "dataSource.password = $RANDOMPASSWORD" >>/etc/rundeck/rundeck-config.properties +RANDOMPASSWORD="nothing here" + +# start rundeck services + +/etc/init.d/rundeckd start +systemctl enable rundeckd