From eeb02e0ac48615f942e7a8f4d12fab0c5dda9695 Mon Sep 17 00:00:00 2001 From: MrDoobPG <46342172+MrDoobPG@users.noreply.github.com> Date: Sat, 31 Aug 2019 00:45:20 +0200 Subject: [PATCH] push --- menu/roles/docker/tasks/main.old.yml | 169 ++++++++++++++++++ .../docker/tasks/subtasks/housekeeping.yml | 17 ++ menu/roles/docker/tasks/subtasks/network.yml | 58 ++++++ menu/roles/docker/templates/daemon.json.j2 | 7 + menu/roles/python/files/pts | 39 ++++ menu/roles/python/files/ptsadd | 40 +++++ menu/roles/python/files/ptsupdate | 15 ++ menu/roles/python/files/task.sh | 49 +++++ menu/roles/python/files/update | 8 + menu/roles/python/files/upgrade | 8 + menu/roles/python/meta.yml | 12 ++ 11 files changed, 422 insertions(+) create mode 100644 menu/roles/docker/tasks/main.old.yml create mode 100644 menu/roles/docker/tasks/subtasks/housekeeping.yml create mode 100644 menu/roles/docker/tasks/subtasks/network.yml create mode 100644 menu/roles/docker/templates/daemon.json.j2 create mode 100644 menu/roles/python/files/pts create mode 100644 menu/roles/python/files/ptsadd create mode 100644 menu/roles/python/files/ptsupdate create mode 100644 menu/roles/python/files/task.sh create mode 100644 menu/roles/python/files/update create mode 100644 menu/roles/python/files/upgrade create mode 100644 menu/roles/python/meta.yml diff --git a/menu/roles/docker/tasks/main.old.yml b/menu/roles/docker/tasks/main.old.yml new file mode 100644 index 00000000..91175314 --- /dev/null +++ b/menu/roles/docker/tasks/main.old.yml @@ -0,0 +1,169 @@ +#!/bin/bash +# +# Title: PGBlitz (Reference Title File) +# Author(s): Admin9705 - Deiteq +# URL: https://pgblitz.com - http://github.pgblitz.com +# GNU: General Public License v3.0 +################################################################################ +--- +- name: 'Establish Facts' + set_fact: + switch: 'on' + updatecheck: 'default' + +- name: 'Docker Check' + stat: + path: '/usr/bin/docker' + register: check + +- name: 'Docker Version Check - True' + shell: "docker --version | awk '{print $3}'" + register: updatecheck + +- name: 'Switch - On' + set_fact: + switch: 'off' + when: updatecheck.stdout == "18.09.8," + +- name: Install required packages + apt: + name: '{{ packages }}' + vars: + packages: + - apt-transport-https + - ca-certificates + - software-properties-common + when: switch == "on" + +- name: Add official gpg signing key + apt_key: + id: 0EBFCD88 + url: https://download.docker.com/linux/ubuntu/gpg + when: switch == "on" + +- name: 'Stop All Containers' + shell: 'docker stop $(docker ps -a -q)' + ignore_errors: yes + when: + - check.stat.exists == True + - switch == "on" + +- name: Official Repo + apt_repository: + repo: 'deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} edge' + register: apt_docker_repositories + when: switch == "on" + +- name: Update APT packages list + apt: + update_cache: yes + when: apt_docker_repositories.changed and switch == "on" + +- name: Release docker-ce from hold + dpkg_selections: + name: docker-ce + selection: install + when: switch == "on" + +- name: Install docker-ce + apt: + name: docker-ce + state: latest + update_cache: yes + when: switch == "on" + +- name: Put docker-ce into hold + dpkg_selections: + name: docker-ce + selection: hold + when: switch == "on" + +- name: Uninstall docker-py pip module + pip: + name: docker-py + state: absent + ignore_errors: yes + when: switch == "on" + +- name: Install docker pip module + pip: + name: docker + state: latest + ignore_errors: yes + when: switch == "on" + +- name: Check docker daemon.json exists + stat: + path: /etc/docker/daemon.json + register: docker_daemon + +- name: Stop docker to enable overlay2 + systemd: + state: stopped + name: docker + enabled: yes + when: + - docker_daemon.stat.exists == False + - switch == "on" + +- name: Import daemon.json + copy: + src: daemon.json + dest: /etc/docker/daemon.json + force: yes + mode: 0775 + when: + - docker_daemon.stat.exists == False + - switch == "on" + +- name: Start docker (Please Wait) + systemd: + state: started + name: docker + enabled: yes + when: + - docker_daemon.stat.exists == False + - switch == "on" + +- name: 'Wait for 20 seconds before commencing' + wait_for: + timeout: 20 + when: switch == "on" + +- name: Check override folder exists + stat: + path: /etc/systemd/system/docker.service.d + register: docker_override + +- name: Create override folder + file: + path: /etc/systemd/system/docker.service.d + state: directory + mode: 0775 + when: + - docker_override.stat.exists == False + - switch == "on" + tags: docker_standard + +- name: Import override file + copy: + src: override.conf + dest: /etc/systemd/system/docker.service.d/override.conf + force: yes + mode: 0775 + tags: docker_standard + when: switch == "on" + +- name: create plexguide network + docker_network: + name: 'plexguide' + state: present + tags: docker_standard + when: switch == "on" + +- name: 'Start All Containers' + shell: 'docker start $(docker ps -a -q)' + ignore_errors: yes + when: + - switch == "on" + - check.stat.exists == True diff --git a/menu/roles/docker/tasks/subtasks/housekeeping.yml b/menu/roles/docker/tasks/subtasks/housekeeping.yml new file mode 100644 index 00000000..f19571c0 --- /dev/null +++ b/menu/roles/docker/tasks/subtasks/housekeeping.yml @@ -0,0 +1,17 @@ +######################################################################### +# Title: Docker: Housekeeping Tasks # +# Author(s): desimaniac # +# URL: https://github.com/cloudbox/cloudbox # +# -- # +# Part of the Cloudbox project: https://cloudbox.works # +######################################################################### +# GNU General Public License v3.0 # +######################################################################### +--- +- name: Housekeeping | Remove all unused docker images + shell: docker image prune -af &> /dev/null || true + ignore_errors: yes + +- name: Housekeeping | Remove all unused docker volumes + shell: docker volume prune -f &> /dev/null || true + ignore_errors: yes diff --git a/menu/roles/docker/tasks/subtasks/network.yml b/menu/roles/docker/tasks/subtasks/network.yml new file mode 100644 index 00000000..d4712da8 --- /dev/null +++ b/menu/roles/docker/tasks/subtasks/network.yml @@ -0,0 +1,58 @@ +######################################################################### +# Title: Docker: Network Tasks # +# Author(s): desimaniac, l3uddz # +# URL: https://github.com/cloudbox/cloudbox # +# -- # +# Part of the Cloudbox project: https://cloudbox.works # +######################################################################### +# GNU General Public License v3.0 # +# Many thanks to the guys of CBox . Thansk for building this part # +######################################################################### +--- +- name: Network | Get list of docker networks + shell: docker network ls --format '{{ '{{' }} .Name{{ '}}' }}' + register: docker_networks + +- name: Network | Get plexguide docker network gateway + shell: docker network inspect plexguide -f '{{ '{{' }}range .IPAM.Config{{ '}}' }}{{ '{{' }}.Gateway{{ '}}' }}{{ '{{' }}end{{ '}}' }}' + register: docker_gateway + when: ('plexguide' in docker_networks.stdout_lines) + +- name: "Network | Create new plexguide docker network block" + block: + + - name: Create plexguide network + docker_network: + name: plexguide + state: present + + when: ('plexguide' not in docker_networks.stdout_lines) + +- name: "Network | Rebuild existing plexguide docker network block" + block: + + - name: Network | Get list of containers on plexguide network + shell: docker ps -a --filter network=plexguide --format '{{ '{{' }}.Names{{ '}}' }}' + register: docker_containers + + - name: Network | Disconnect containers from bridge network + shell: docker network disconnect -f bridge {{ item }} + with_items: "{{ docker_containers.stdout_lines }}" + register: r + failed_when: r.rc > 1 + ignore_errors: yes + + - name: Network | Rebuild plexguide network + docker_network: + name: plexguide + state: present + force: yes + + - name: Network | Connect containers to plexguide network + shell: docker network connect plexguide {{ item }} --alias {{ item }} + with_items: "{{ docker_containers.stdout_lines }}" + register: q + failed_when: q.rc > 1 + ignore_errors: yes + + when: ('plexguide' in docker_networks.stdout_lines) and (docker_gateway.stdout == '172.18.0.254') diff --git a/menu/roles/docker/templates/daemon.json.j2 b/menu/roles/docker/templates/daemon.json.j2 new file mode 100644 index 00000000..b2466d2f --- /dev/null +++ b/menu/roles/docker/templates/daemon.json.j2 @@ -0,0 +1,7 @@ +{ + "storage-driver": "{{ ('zfs' in var_lib_file_system.stdout) | ternary('zfs','overlay2') }}", + "userland-proxy": false, + "log-driver": "json-file", + "init": true, + "log-opts": {"max-size": "10m", "max-file": "3"} +} diff --git a/menu/roles/python/files/pts b/menu/roles/python/files/pts new file mode 100644 index 00000000..36c228d4 --- /dev/null +++ b/menu/roles/python/files/pts @@ -0,0 +1,39 @@ +#!/bin/bash +# +# Title: PGBlitz (Reference Title File) +# Author(s): Admin9705 +# URL: https://pgblitz.com - http://github.pgblitz.com +# GNU: General Public License v3.0 +################################################################################ +file="/var/plexguide/pg.number" +if [ -e "$file" ]; then + check="$(cat /var/plexguide/pg.number | head -c 1)" + if [[ "$check" == "5" || "$check" == "6" || "$check" == "7" ]]; then + + tee <<-EOF + +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +🌎 INSTALLER BLOCK: Notice +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +We detected PG Version $check is running! Per the instructions, PG 8 +must be installed on a FRESH BOX! Exiting! +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +EOF + exit + fi +fi + +source /opt/plexguide/menu/functions/functions.sh +source /opt/plexguide/menu/functions/start.sh +source /opt/plexguide/menu/functions/install.sh + +mkdir -p /opt/plexguide/roles/log +mkdir -p /var/plexguide/logs +mkdir -p /opt/appdata/plexguide + +sudocheck +missingpull + +# pg deploy contains pgdeploy at end +pginstall diff --git a/menu/roles/python/files/ptsadd b/menu/roles/python/files/ptsadd new file mode 100644 index 00000000..73b603b0 --- /dev/null +++ b/menu/roles/python/files/ptsadd @@ -0,0 +1,40 @@ +#!/bin/bash +##usercheck +if [ $(grep "1000" /etc/passwd | cut -d: -f1 | awk '{print $1}') ]; then + usermod -aG sudo $(grep "1000" /etc/passwd | cut -d: -f1 | awk '{print $1}') + sudo usermod -s /bin/bash $(grep "1000" /etc/passwd | cut -d: -f1 | awk '{print $1}') + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo "" + echo " ✅ PASSED ! We found the user UID " $(grep "1000" /etc/passwd | cut -d: -f1 | awk '{print $1}') + echo "" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +else + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo " ⌛ INFO ! " + echo " ⌛ INFO ! Only lowercase and dont empty parts" + echo " ⌛ INFO ! Enter a password (8+ chars)" + echo " ⌛ INFO ! " + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo "" + read -p "Enter username : " username + read -s -p "Enter password : " password + echo "" + egrep "^$username" /etc/passwd >/dev/null + pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) + useradd -m -p $pass $username + usermod -aG sudo $username + sudo usermod -s /bin/bash $username + echo "" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo " ✅ PASSED ! User has been added to system!" + echo " ✅ PASSED ! Your Username : " $username + echo " ✅ PASSED ! Your Password : " $password + echo " ✅ PASSED ! " + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +fi +tee <<-EOF +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +😂 What a Lame name: $(grep "1000" /etc/passwd | cut -d: -f1 | awk '{print $1}') +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +EOF +exit 0 diff --git a/menu/roles/python/files/ptsupdate b/menu/roles/python/files/ptsupdate new file mode 100644 index 00000000..cfb4797a --- /dev/null +++ b/menu/roles/python/files/ptsupdate @@ -0,0 +1,15 @@ +#!/bin/bash +# +# Title: PGBlitz (Reference Title File) +# Author(s): Admin9705 +# URL: https://pgblitz.com - http://github.pgblitz.com +# GNU: General Public License v3.0 +################################################################################ +source /opt/plexguide/menu/functions/functions.sh +source /opt/plexguide/menu/functions/start.sh + +sudocheck +missingpull +owned +exitcheck + diff --git a/menu/roles/python/files/task.sh b/menu/roles/python/files/task.sh new file mode 100644 index 00000000..94217d96 --- /dev/null +++ b/menu/roles/python/files/task.sh @@ -0,0 +1,49 @@ +apt-get install -y --reinstall \ + nano \ + git \ + build-essential \ + libssl-dev \ + libffi-dev \ + python3-dev \ + python3-testresources \ + python3-pip \ + python3-testresources \ + python-dev \ + python-pip +python3 -m pip install --disable-pip-version-check --upgrade --force-reinstall pip==19.2.3 +python3 -m pip install --disable-pip-version-check --upgrade --force-reinstall setuptools +python3 -m pip install --disable-pip-version-check --upgrade --force-reinstall \ + pyOpenSSL \ + requests \ + netaddr \ + lxml +# python -m pip install --disable-pip-version-check --upgrade --force-reinstall pip==19.1.1 +# python -m pip install --disable-pip-version-check --upgrade --force-reinstall setuptools +# python -m pip install --disable-pip-version-check --upgrade --force-reinstall \ + # pyOpenSSL \ + # requests \ + # netaddr \ + # lxml +python3 -m pip install --disable-pip-version-check --upgrade --force-reinstall ansible==${1-2.8.2} + +## Copy pip to /usr/bin +# cp /usr/local/bin/pip /usr/bin/pip +cp /usr/local/bin/pip3 /usr/bin/pip3 + +mkdir -p /etc/ansible/inventories/ 1>/dev/null 2>&1 +echo "[local]" >/etc/ansible/inventories/local +echo "127.0.0.1 ansible_connection=local" >>/etc/ansible/inventories/local + +### Reference: https://docs.ansible.com/ansible/2.4/intro_configuration.html +echo "[defaults]" >/etc/ansible/ansible.cfg +echo "deprecation_warnings=False" >>/etc/ansible/ansible.cfg + +echo "command_warnings = False" >>/etc/ansible/ansible.cfg +echo "callback_whitelist = profile_tasks" >>/etc/ansible/ansible.cfg +echo "inventory = /etc/ansible/inventories/local" >>/etc/ansible/ansible.cfg + +# Remove Cows when cowsay installed on main system +echo "nocows = 1" >>/etc/ansible/ansible.cfg + +# Variables Need to Line Up with pg.sh (start) +touch /var/plexguide/background.1 \ No newline at end of file diff --git a/menu/roles/python/files/update b/menu/roles/python/files/update new file mode 100644 index 00000000..fcf27cf1 --- /dev/null +++ b/menu/roles/python/files/update @@ -0,0 +1,8 @@ +#!/bin/bash +# +# Title: PGBlitz (Reference Title File) +# Author(s): Admin9705 - Deiteq - Sub7Seven +# URL: https://pgblitz.com - http://github.pgblitz.com +# GNU: General Public License v3.0 +################################################################################ +sudo apt update -y diff --git a/menu/roles/python/files/upgrade b/menu/roles/python/files/upgrade new file mode 100644 index 00000000..582c6740 --- /dev/null +++ b/menu/roles/python/files/upgrade @@ -0,0 +1,8 @@ +#!/bin/bash +# +# Title: PGBlitz (Reference Title File) +# Author(s): Admin9705 - Deiteq - Sub7Seven +# URL: https://pgblitz.com - http://github.pgblitz.com +# GNU: General Public License v3.0 +################################################################################ +sudo apt upgrade -y diff --git a/menu/roles/python/meta.yml b/menu/roles/python/meta.yml new file mode 100644 index 00000000..e18e7a69 --- /dev/null +++ b/menu/roles/python/meta.yml @@ -0,0 +1,12 @@ +#!/bin/bash +# +# Title: PTS Install base +# Author(s): MrDoobPG +# GNU: General Public License v3.0 +################################################################################ +--- +- hosts: localhost + gather_facts: false + tasks: + - name: Python3 | Ansible | pip | set values. + shell: bash /opt/plexguide/menu/roles/pyhton/files/task.sh >> /var/log/log-install.txt