|
@@ -0,0 +1,134 @@
|
|
|
|
|
+---
|
|
|
|
|
+- hosts: all
|
|
|
|
|
+ user: mike
|
|
|
|
|
+ become: true
|
|
|
|
|
+ tasks:
|
|
|
|
|
+# - name: Update Server
|
|
|
|
|
+# apt:
|
|
|
|
|
+# upgrade: true
|
|
|
|
|
+# update-cache: true
|
|
|
|
|
+# cache_valid_time: 3600
|
|
|
|
|
+
|
|
|
|
|
+ - name: Make users passwordless for sudo in group mike
|
|
|
|
|
+ lineinfile:
|
|
|
|
|
+ path: /etc/sudoers
|
|
|
|
|
+ state: present
|
|
|
|
|
+ regexp: '^%sudo'
|
|
|
|
|
+ line: '%sudo ALL=(ALL) NOPASSWD: ALL'
|
|
|
|
|
+ validate: 'visudo -cf %s'
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ - name: Install Core Server Utils
|
|
|
|
|
+ apt:
|
|
|
|
|
+ pkg:
|
|
|
|
|
+ - curl
|
|
|
|
|
+ - python3
|
|
|
|
|
+ - ufw
|
|
|
|
|
+ - samba
|
|
|
|
|
+ - smbclient
|
|
|
|
|
+ - cifs-utils
|
|
|
|
|
+ - apt-transport-https
|
|
|
|
|
+ - ca-certificates
|
|
|
|
|
+ - curl
|
|
|
|
|
+ - software-properties-common
|
|
|
|
|
+ - python3-pip
|
|
|
|
|
+ - virtualenv
|
|
|
|
|
+ - python3-setuptools
|
|
|
|
|
+ - rsync
|
|
|
|
|
+
|
|
|
|
|
+ state: present
|
|
|
|
|
+# update_cache: true
|
|
|
|
|
+ cache_valid_time: 3600
|
|
|
|
|
+
|
|
|
|
|
+ - name: Add Docker GPG apt Key
|
|
|
|
|
+ apt_key:
|
|
|
|
|
+ url: https://download.docker.com/linux/ubuntu/gpg
|
|
|
|
|
+ state: present
|
|
|
|
|
+
|
|
|
|
|
+ - name: Add Docker Repository
|
|
|
|
|
+ apt_repository:
|
|
|
|
|
+ repo: deb https://download.docker.com/linux/ubuntu focal stable
|
|
|
|
|
+ state: present
|
|
|
|
|
+
|
|
|
|
|
+ - name: Update apt and install docker-ce
|
|
|
|
|
+ apt:
|
|
|
|
|
+ name:
|
|
|
|
|
+ - docker-ce
|
|
|
|
|
+ - containerd.io
|
|
|
|
|
+ - docker-compose
|
|
|
|
|
+ state: latest
|
|
|
|
|
+ update_cache: true
|
|
|
|
|
+
|
|
|
|
|
+ - name: Add user to docker group
|
|
|
|
|
+ user:
|
|
|
|
|
+ name: "{{ansible_user}}"
|
|
|
|
|
+ group: docker
|
|
|
|
|
+
|
|
|
|
|
+ - name: Install Docker Containers
|
|
|
|
|
+ community.docker.docker_container:
|
|
|
|
|
+ name: portainer
|
|
|
|
|
+ image: portainer/portainer-ce
|
|
|
|
|
+
|
|
|
|
|
+# - name: Create Portainer Directory
|
|
|
|
|
+# file:
|
|
|
|
|
+# path: /home/mike/docker/portainer
|
|
|
|
|
+# state: directory
|
|
|
|
|
+# become_user: mike
|
|
|
|
|
+
|
|
|
|
|
+ - name: Create UFW directory
|
|
|
|
|
+ file:
|
|
|
|
|
+ path: /home/mike/ufw/applications.d
|
|
|
|
|
+ state: directory
|
|
|
|
|
+ become_user: mike
|
|
|
|
|
+
|
|
|
|
|
+# - name: Sync Portainer docker-compose file
|
|
|
|
|
+# synchronize:
|
|
|
|
|
+# src: /home/mike/Software/ansible-debian/portainer/docker-compose.yml
|
|
|
|
|
+# dest: /home/mike/docker/portainer
|
|
|
|
|
+# become_user: mike
|
|
|
|
|
+
|
|
|
|
|
+ - name: Install UFW config files
|
|
|
|
|
+ synchronize:
|
|
|
|
|
+ src: /home/mike/Software/ansible-debian/ufw/applications.d/TG-portainer
|
|
|
|
|
+ dest: /home/mike/ufw/applications.d
|
|
|
|
|
+ become_user: mike
|
|
|
|
|
+
|
|
|
|
|
+# - name: Move UFW files to proper directory
|
|
|
|
|
+# command: mv /home/mike/ufw/applications.d/TG-portainer /etc/ufw/applications.d/TG-portainer
|
|
|
|
|
+
|
|
|
|
|
+ - name: Set ownership of UFW files to root
|
|
|
|
|
+ file: dest=/etc/ufw/applications.d owner=root group=root recurse=yes
|
|
|
|
|
+ ### Need to change ownership to root ###
|
|
|
|
|
+
|
|
|
|
|
+### THIS DOES NOT WORK!
|
|
|
|
|
+### IF RUN IN THIS SCRIPT, THIS CONTAINER IS started as 'mike' and cannot view /var/run/docker.sock
|
|
|
|
|
+### if run alone (with --tags portainer) it works.
|
|
|
|
|
+# - name: Start Portainer
|
|
|
|
|
+# docker_compose:
|
|
|
|
|
+# project_src: /home/mike/docker/portainer
|
|
|
|
|
+# state: present
|
|
|
|
|
+# become: yes
|
|
|
|
|
+# become_method: sudo
|
|
|
|
|
+# tags: portainer
|
|
|
|
|
+
|
|
|
|
|
+ - name: Configure UFW - allow OpenSSH, samba, and TG-portainer
|
|
|
|
|
+ ufw:
|
|
|
|
|
+ rule: allow
|
|
|
|
|
+ name: "{{ item }}"
|
|
|
|
|
+ with_items:
|
|
|
|
|
+ - OpenSSH
|
|
|
|
|
+ - samba
|
|
|
|
|
+# - TG-portainer
|
|
|
|
|
+
|
|
|
|
|
+# - name: Configure UFW - delete default allow 22
|
|
|
|
|
+# ufw:
|
|
|
|
|
+# rule: allow
|
|
|
|
|
+# port: 22
|
|
|
|
|
+# proto: tcp
|
|
|
|
|
+# delete: yes
|
|
|
|
|
+
|
|
|
|
|
+ - name: Configure UFW - deny all else
|
|
|
|
|
+ ufw:
|
|
|
|
|
+ state: enabled
|
|
|
|
|
+ policy: deny
|
|
|
|
|
+
|