Merge branch 'master' of git.fudiggity.nl:ansible/common
This commit is contained in:
commit
df04e2eaf1
17 changed files with 200 additions and 214 deletions
|
|
@ -1,5 +0,0 @@
|
||||||
parseable: true
|
|
||||||
quiet: true
|
|
||||||
skip_list:
|
|
||||||
- '501'
|
|
||||||
use_default_rules: true
|
|
||||||
|
|
@ -1,33 +1,15 @@
|
||||||
stages:
|
stages:
|
||||||
- lint
|
- lint
|
||||||
- test
|
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
key: "$CI_COMMIT_REF_SLUG"
|
key: $CI_COMMIT_REF_SLUG
|
||||||
paths:
|
paths:
|
||||||
- .cache/pip
|
|
||||||
- node_modules/
|
- node_modules/
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
stage: lint
|
|
||||||
image: python:3.7
|
|
||||||
before_script:
|
|
||||||
- pip install ansible ansible-lint --quiet
|
|
||||||
script:
|
|
||||||
- ansible-lint playbook.yml
|
|
||||||
only:
|
|
||||||
refs:
|
|
||||||
- development
|
|
||||||
- merge_requests
|
|
||||||
|
|
||||||
pretty-lint:
|
|
||||||
stage: lint
|
stage: lint
|
||||||
image: node:12
|
image: node:12
|
||||||
before_script:
|
before_script:
|
||||||
- npm install
|
- npm install prettier --no-save
|
||||||
script:
|
script:
|
||||||
- npx prettier "**/*.yml" --check
|
- npx prettier '**/*.yml' --check
|
||||||
only:
|
|
||||||
refs:
|
|
||||||
- development
|
|
||||||
- merge_requests
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"singleQuote": true,
|
|
||||||
"printWidth": 90,
|
|
||||||
"tabWidth": 2,
|
|
||||||
"useTabs": false,
|
|
||||||
"bracketSpacing": true,
|
|
||||||
"parser": "yaml"
|
|
||||||
}
|
|
||||||
|
|
||||||
5
.prettierrc.yml
Normal file
5
.prettierrc.yml
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
singleQuote: true
|
||||||
|
printWidth: 90
|
||||||
|
tabWidth: 2
|
||||||
|
useTabs: false
|
||||||
|
bracketSpacing: true
|
||||||
|
|
@ -1,3 +1,29 @@
|
||||||
poetry_url: "https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py"
|
poetry_url: 'https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py'
|
||||||
poetry_user: "{{ ansible_user | default(lookup('env', 'USER'), True) }}"
|
poetry_user: "{{ ansible_user | default(lookup('env', 'USER'), True) }}"
|
||||||
poetry_dir: "{{ ansible_env.HOME }}/.poetry"
|
poetry_dir: '{{ ansible_env.HOME }}/.poetry'
|
||||||
|
|
||||||
|
common_packages:
|
||||||
|
- acl
|
||||||
|
- man
|
||||||
|
- apt-transport-https
|
||||||
|
- ca-certificates
|
||||||
|
- software-properties-common
|
||||||
|
- policykit-1
|
||||||
|
- libpolkit-agent-1-0
|
||||||
|
- nftables
|
||||||
|
- openssh-client
|
||||||
|
- bash-completion
|
||||||
|
- git
|
||||||
|
- vim
|
||||||
|
- curl
|
||||||
|
- tree
|
||||||
|
- haveged
|
||||||
|
- rsync
|
||||||
|
|
||||||
|
ssl_packages:
|
||||||
|
- python3-openssl
|
||||||
|
- python3-crypto
|
||||||
|
- python3-cryptography
|
||||||
|
- python-openssl
|
||||||
|
- python-crypto
|
||||||
|
- python-cryptography
|
||||||
|
|
|
||||||
|
|
@ -1,71 +1,79 @@
|
||||||
- name: reload ssh
|
- name: reload ssh
|
||||||
|
become: true
|
||||||
systemd:
|
systemd:
|
||||||
name: ssh
|
name: ssh
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: yes
|
enabled: true
|
||||||
daemon-reload: yes
|
daemon-reload: true
|
||||||
|
|
||||||
- name: restart nftables
|
- name: restart nftables
|
||||||
|
become: true
|
||||||
systemd:
|
systemd:
|
||||||
name: nftables
|
name: nftables
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: yes
|
enabled: true
|
||||||
daemon-reload: yes
|
daemon-reload: true
|
||||||
|
|
||||||
- name: restart nginx
|
- name: restart nginx
|
||||||
|
become: true
|
||||||
systemd:
|
systemd:
|
||||||
name: nginx
|
name: nginx
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: yes
|
enabled: true
|
||||||
daemon-reload: yes
|
daemon-reload: true
|
||||||
|
|
||||||
- name: restart docker
|
- name: restart docker
|
||||||
|
become: true
|
||||||
systemd:
|
systemd:
|
||||||
name: docker
|
name: docker
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: yes
|
enabled: true
|
||||||
daemon-reload: yes
|
daemon-reload: true
|
||||||
|
|
||||||
- name: restart rabbitmq
|
- name: restart rabbitmq
|
||||||
|
become: true
|
||||||
systemd:
|
systemd:
|
||||||
name: rabbitmq-server
|
name: rabbitmq-server
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: yes
|
enabled: true
|
||||||
daemon-reload: yes
|
daemon-reload: true
|
||||||
|
|
||||||
- name: restart memcached
|
- name: restart memcached
|
||||||
|
become: true
|
||||||
systemd:
|
systemd:
|
||||||
name: memcached
|
name: memcached
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: yes
|
enabled: true
|
||||||
daemon-reload: yes
|
daemon-reload: true
|
||||||
|
|
||||||
- name: restart postfix
|
- name: restart postfix
|
||||||
|
become: true
|
||||||
systemd:
|
systemd:
|
||||||
name: postfix
|
name: postfix
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: yes
|
enabled: true
|
||||||
daemon-reload: yes
|
daemon-reload: true
|
||||||
|
|
||||||
- name: restart postgres
|
- name: restart postgres
|
||||||
|
become: true
|
||||||
systemd:
|
systemd:
|
||||||
name: postgresql@11-main
|
name: postgresql@11-main
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: yes
|
enabled: true
|
||||||
daemon-reload: yes
|
daemon-reload: true
|
||||||
|
|
||||||
- name: restart systemd-networkd
|
- name: restart systemd-networkd
|
||||||
|
become: true
|
||||||
systemd:
|
systemd:
|
||||||
name: systemd-networkd
|
name: systemd-networkd
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: yes
|
enabled: true
|
||||||
daemon-reload: yes
|
daemon-reload: true
|
||||||
|
|
||||||
- name: restart systemd-resolved
|
- name: restart systemd-resolved
|
||||||
|
become: true
|
||||||
systemd:
|
systemd:
|
||||||
name: systemd-resolved
|
name: systemd-resolved
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: yes
|
enabled: true
|
||||||
daemon-reload: yes
|
daemon-reload: true
|
||||||
|
|
||||||
- include: user.yml
|
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
- name: start user tmux service
|
- name: start user tmux service
|
||||||
become_user: "{{ default_user }}"
|
become_user: '{{ default_user }}'
|
||||||
become: yes
|
become: true
|
||||||
systemd:
|
systemd:
|
||||||
daemon-reload: yes
|
daemon-reload: true
|
||||||
name: tmux
|
name: tmux
|
||||||
state: started
|
state: started
|
||||||
enabled: yes
|
enabled: true
|
||||||
scope: user
|
scope: user
|
||||||
|
|
||||||
- name: restart user tmux service
|
- name: restart user tmux service
|
||||||
become_user: "{{ default_user }}"
|
become_user: '{{ default_user }}'
|
||||||
become: yes
|
become: true
|
||||||
systemd:
|
systemd:
|
||||||
daemon-reload: yes
|
daemon-reload: true
|
||||||
name: tmux
|
name: tmux
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: yes
|
enabled: true
|
||||||
scope: user
|
scope: user
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@ dependencies: []
|
||||||
|
|
||||||
galaxy_info:
|
galaxy_info:
|
||||||
author: sonny
|
author: sonny
|
||||||
description: "Common tasks"
|
description: 'Common tasks'
|
||||||
license: "license GPLv3"
|
license: 'license GPLv3'
|
||||||
min_ansible_version: 2.7
|
min_ansible_version: 2.7
|
||||||
issue_tracker_url: "https://git.fudiggity.nl/ansible/common/-/issues"
|
issue_tracker_url: 'https://git.fudiggity.nl/ansible/common/-/issues'
|
||||||
platforms:
|
platforms:
|
||||||
- name: Debian
|
- name: Debian
|
||||||
versions:
|
versions:
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,15 @@
|
||||||
- name: copy hostname
|
- name: copy hostname
|
||||||
template:
|
template:
|
||||||
src: "hostname.j2"
|
src: 'hostname.j2'
|
||||||
dest: "/etc/hostname"
|
dest: '/etc/hostname'
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: "0644"
|
mode: '0644'
|
||||||
|
|
||||||
- name: copy hosts
|
- name: copy hosts
|
||||||
template:
|
template:
|
||||||
src: "hosts.j2"
|
src: 'hosts.j2'
|
||||||
dest: "/etc/hosts"
|
dest: '/etc/hosts'
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: "0644"
|
mode: '0644'
|
||||||
|
|
|
||||||
|
|
@ -1,39 +1,39 @@
|
||||||
- name: load OS specific vars
|
- name: load OS specific vars
|
||||||
include_vars: "{{ item }}"
|
include_vars: '{{ item }}'
|
||||||
with_first_found:
|
with_first_found:
|
||||||
- files:
|
- files:
|
||||||
- "{{ ansible_distribution|lower }}-{{ ansible_distribution_release|lower }}.yml"
|
- '{{ ansible_distribution|lower }}-{{ ansible_distribution_release|lower }}.yml'
|
||||||
- "{{ ansible_distribution|lower }}.yml"
|
- '{{ ansible_distribution|lower }}.yml'
|
||||||
- "{{ ansible_os_family|lower }}.yml"
|
- '{{ ansible_os_family|lower }}.yml'
|
||||||
paths:
|
paths:
|
||||||
- "{{ role_path }}/vars"
|
- '{{ role_path }}/vars'
|
||||||
|
|
||||||
- name: install packages
|
- name: install packages
|
||||||
become: yes
|
become: true
|
||||||
package:
|
package:
|
||||||
name: "{{ item }}"
|
name: '{{ item }}'
|
||||||
state: present
|
state: present
|
||||||
loop: "{{ known_hosts_packages }}"
|
loop: '{{ known_hosts_packages }}'
|
||||||
|
|
||||||
- name: retrieve user $HOME
|
- name: retrieve user $HOME
|
||||||
shell: "echo $HOME" # noqa 301
|
shell: 'echo $HOME'
|
||||||
become_user: "{{ user }}"
|
become_user: '{{ user }}'
|
||||||
register: home_stats
|
register: home_stats
|
||||||
|
|
||||||
- name: set user $HOME
|
- name: set user $HOME
|
||||||
set_fact:
|
set_fact:
|
||||||
user_home: "{{ home_stats.stdout }}"
|
user_home: '{{ home_stats.stdout }}'
|
||||||
|
|
||||||
- name: create local ssh directory
|
- name: create local ssh directory
|
||||||
become_user: "{{ user }}"
|
become_user: '{{ user }}'
|
||||||
file:
|
file:
|
||||||
path: "{{ user_home }}/.ssh"
|
path: '{{ user_home }}/.ssh'
|
||||||
state: directory
|
state: directory
|
||||||
mode: "0755"
|
mode: '0755'
|
||||||
|
|
||||||
- name: add items to known hosts
|
- name: add items to known hosts
|
||||||
become_user: "{{ user }}"
|
become_user: '{{ user }}'
|
||||||
known_hosts:
|
known_hosts:
|
||||||
name: "{{ item.domain }}"
|
name: '{{ item.domain }}'
|
||||||
key: "{{ item.key }}"
|
key: '{{ item.key }}'
|
||||||
loop: "{{ items }}"
|
loop: '{{ items }}'
|
||||||
|
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
||||||
- include_tasks: "sudoers.yml"
|
|
||||||
loop:
|
|
||||||
- { src: "sudoers.j2", dest: "/etc/sudoers.d/20-ansible-extra" }
|
|
||||||
|
|
||||||
- name: copy ssh template
|
|
||||||
template:
|
|
||||||
src: "sshd_config.j2"
|
|
||||||
dest: "/etc/ssh/sshd_config"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0644"
|
|
||||||
notify: reload ssh
|
|
||||||
|
|
||||||
- name: viva la hollande
|
|
||||||
locale_gen:
|
|
||||||
name: nl_NL.UTF-8
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: ensure basic tooling is installed
|
|
||||||
apt:
|
|
||||||
name:
|
|
||||||
- acl
|
|
||||||
- man
|
|
||||||
- apt-transport-https
|
|
||||||
- ca-certificates
|
|
||||||
- software-properties-common
|
|
||||||
- policykit-1
|
|
||||||
- libpolkit-agent-1-0
|
|
||||||
- nftables
|
|
||||||
- openssh-client
|
|
||||||
- bash-completion
|
|
||||||
- git
|
|
||||||
- vim
|
|
||||||
- curl
|
|
||||||
- tree
|
|
||||||
- haveged
|
|
||||||
- rsync
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: copy firewall template
|
|
||||||
template:
|
|
||||||
src: "nftables.j2"
|
|
||||||
dest: "/etc/nftables.conf"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0600"
|
|
||||||
notify: restart nftables
|
|
||||||
|
|
||||||
# see https://wiki.debian.org/systemd#Orphaned_processes
|
|
||||||
- name: enable loginctl user-linger
|
|
||||||
command: "loginctl enable-linger {{ default_user|quote }}" # noqa 301
|
|
||||||
|
|
@ -1,27 +1,28 @@
|
||||||
- name: check old network configuration
|
- name: check old network configuration
|
||||||
stat: path=/etc/network/interfaces
|
stat:
|
||||||
|
path: '/etc/network/interfaces'
|
||||||
register: old_config
|
register: old_config
|
||||||
|
|
||||||
- name: move old network configuration
|
- name: move old network configuration
|
||||||
command: mv /etc/network/interfaces /etc/network/interfaces.save
|
command: 'mv /etc/network/interfaces /etc/network/interfaces.save'
|
||||||
when: old_config.stat.exists
|
when: old_config.stat.exists
|
||||||
|
|
||||||
- name: copy network configuration
|
- name: copy network configuration
|
||||||
template:
|
template:
|
||||||
src: "network.j2"
|
src: 'network.j2'
|
||||||
dest: "/etc/systemd/network/50-default.network"
|
dest: '/etc/systemd/network/50-default.network'
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: "0644"
|
mode: '0644'
|
||||||
notify: restart systemd-networkd
|
notify: restart systemd-networkd
|
||||||
|
|
||||||
- name: copy dns configuration
|
- name: copy dns configuration
|
||||||
file:
|
file:
|
||||||
src: "/run/systemd/resolve/resolv.conf"
|
src: '/run/systemd/resolve/resolv.conf'
|
||||||
dest: "/etc/resolv.conf"
|
dest: '/etc/resolv.conf'
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
state: link
|
state: link
|
||||||
force: yes
|
force: true
|
||||||
mode: "0644"
|
mode: '0644'
|
||||||
notify: restart systemd-resolved
|
notify: restart systemd-resolved
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
- name: install nginx
|
- name: install nginx
|
||||||
apt:
|
package:
|
||||||
name: nginx
|
name: nginx
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: copy nginx config
|
- name: copy nginx config
|
||||||
template:
|
template:
|
||||||
src: "nginx.conf.j2"
|
src: 'nginx.conf.j2'
|
||||||
dest: "/etc/nginx/nginx.conf"
|
dest: '/etc/nginx/nginx.conf'
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: "0644"
|
mode: '0644'
|
||||||
|
|
||||||
- name: remove default site
|
- name: remove default site
|
||||||
file:
|
file:
|
||||||
path: "/etc/nginx/sites-enabled/default"
|
path: '/etc/nginx/sites-enabled/default'
|
||||||
state: absent
|
state: absent
|
||||||
notify: restart nginx
|
notify: restart nginx
|
||||||
|
|
|
||||||
|
|
@ -1,73 +1,73 @@
|
||||||
- name: retrieve user $HOME # noqa 301
|
- name: retrieve user $HOME
|
||||||
shell: "echo $HOME"
|
shell: 'echo $HOME'
|
||||||
become_user: "{{ poetry_user }}"
|
become_user: '{{ poetry_user }}'
|
||||||
register: home_stats
|
register: home_stats
|
||||||
|
|
||||||
- name: retrieve user $PATH # noqa 301
|
- name: retrieve user $PATH
|
||||||
shell: "echo $PATH"
|
shell: 'echo $PATH'
|
||||||
become_user: "{{ poetry_user }}"
|
become_user: '{{ poetry_user }}'
|
||||||
register: path_stats
|
register: path_stats
|
||||||
|
|
||||||
- name: set poetry user variables
|
- name: set poetry user variables
|
||||||
set_fact:
|
set_fact:
|
||||||
poetry_user_home: "{{ home_stats.stdout }}"
|
poetry_user_home: '{{ home_stats.stdout }}'
|
||||||
poetry_user_path: "{{ path_stats.stdout }}"
|
poetry_user_path: '{{ path_stats.stdout }}'
|
||||||
|
|
||||||
- name: create user folder for binaries
|
- name: create user folder for binaries
|
||||||
become_user: "{{ poetry_user }}"
|
become_user: '{{ poetry_user }}'
|
||||||
file:
|
file:
|
||||||
state: directory
|
state: directory
|
||||||
mode: "0755"
|
mode: '0755'
|
||||||
path: "{{ poetry_user_home }}/.local/bin"
|
path: '{{ poetry_user_home }}/.local/bin'
|
||||||
|
|
||||||
- name: set default python binary # noqa 208
|
- name: set default python binary
|
||||||
become: true
|
become: true
|
||||||
file:
|
file:
|
||||||
state: link
|
state: link
|
||||||
src: "/usr/bin/python3"
|
src: '/usr/bin/python3'
|
||||||
dest: "/usr/bin/python"
|
dest: '/usr/bin/python'
|
||||||
when: ansible_distribution == "Ubuntu"
|
when: ansible_distribution == 'Ubuntu'
|
||||||
|
|
||||||
- name: setup poetry for Ubuntu/Debian derived distro's
|
- name: setup poetry for Ubuntu/Debian derived distro's
|
||||||
block:
|
block:
|
||||||
- name: check poetry existence
|
- name: check poetry existence
|
||||||
become_user: "{{ poetry_user }}"
|
become_user: '{{ poetry_user }}'
|
||||||
stat:
|
stat:
|
||||||
path: "{{ poetry_dir }}"
|
path: '{{ poetry_dir }}'
|
||||||
register: poetry_stats
|
register: poetry_stats
|
||||||
|
|
||||||
- name: download poetry installer
|
- name: download poetry installer
|
||||||
become_user: "{{ poetry_user }}"
|
become_user: '{{ poetry_user }}'
|
||||||
get_url:
|
get_url:
|
||||||
url: "{{ poetry_url }}"
|
url: '{{ poetry_url }}'
|
||||||
dest: /tmp/
|
dest: /tmp/
|
||||||
mode: "0750"
|
mode: '0750'
|
||||||
when: poetry_stats.stat.isdir is not defined
|
when: poetry_stats.stat.isdir is not defined
|
||||||
|
|
||||||
- name: install poetry
|
- name: install poetry
|
||||||
become_user: "{{ poetry_user }}"
|
become_user: '{{ poetry_user }}'
|
||||||
command: "python /tmp/get-poetry.py --yes" # noqa 305
|
command: 'python /tmp/get-poetry.py --yes'
|
||||||
environment:
|
environment:
|
||||||
POETRY_HOME: "{{ poetry_dir }}"
|
POETRY_HOME: '{{ poetry_dir }}'
|
||||||
when: poetry_stats.stat.isdir is not defined
|
when: poetry_stats.stat.isdir is not defined
|
||||||
|
|
||||||
- name: add poetry to user binaries # noqa 208
|
- name: add poetry to user binaries
|
||||||
become_user: "{{ poetry_user }}"
|
become_user: '{{ poetry_user }}'
|
||||||
file:
|
file:
|
||||||
state: link
|
state: link
|
||||||
src: "{{ poetry_dir }}/bin/poetry"
|
src: '{{ poetry_dir }}/bin/poetry'
|
||||||
dest: "{{ poetry_user_home }}/.local/bin/poetry"
|
dest: '{{ poetry_user_home }}/.local/bin/poetry'
|
||||||
when: ansible_distribution == "Debian" or ansible_distribution == "Ubuntu"
|
when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu'
|
||||||
|
|
||||||
- name: setup poetry for Archlinux
|
- name: setup poetry for Archlinux
|
||||||
become: true
|
become: true
|
||||||
pacman:
|
pacman:
|
||||||
name: poetry
|
name: poetry
|
||||||
state: present
|
state: present
|
||||||
when: ansible_facts['os_family'] == "Archlinux"
|
when: ansible_facts['os_family'] == 'Archlinux'
|
||||||
|
|
||||||
- name: update poetry config
|
- name: update poetry config
|
||||||
become_user: "{{ poetry_user }}"
|
become_user: '{{ poetry_user }}'
|
||||||
command: "poetry config virtualenvs.in-project true" # noqa 301
|
command: 'poetry config virtualenvs.in-project true'
|
||||||
environment:
|
environment:
|
||||||
PATH: "{{ poetry_user_home }}/.local/bin:{{ poetry_user_path }}"
|
PATH: '{{ poetry_user_home }}/.local/bin:{{ poetry_user_path }}'
|
||||||
|
|
|
||||||
35
tasks/setup.yml
Normal file
35
tasks/setup.yml
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
- include_tasks: 'sudoers.yml'
|
||||||
|
loop:
|
||||||
|
- { src: 'sudoers.j2', dest: '/etc/sudoers.d/20-ansible-extra' }
|
||||||
|
|
||||||
|
- name: copy ssh template
|
||||||
|
template:
|
||||||
|
src: 'sshd_config.j2'
|
||||||
|
dest: '/etc/ssh/sshd_config'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
notify: reload ssh
|
||||||
|
|
||||||
|
- name: viva la hollande
|
||||||
|
locale_gen:
|
||||||
|
name: nl_NL.UTF-8
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: ensure basic tooling is installed
|
||||||
|
apt:
|
||||||
|
name: '{{ common_packages }}'
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: copy firewall template
|
||||||
|
template:
|
||||||
|
src: 'nftables.j2'
|
||||||
|
dest: '/etc/nftables.conf'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0600'
|
||||||
|
notify: restart nftables
|
||||||
|
|
||||||
|
# see https://wiki.debian.org/systemd#Orphaned_processes
|
||||||
|
- name: enable loginctl user-linger
|
||||||
|
command: 'loginctl enable-linger {{ default_user|quote }}'
|
||||||
|
|
@ -1,39 +1,33 @@
|
||||||
- name: install SSL packages
|
- name: install SSL packages
|
||||||
apt:
|
apt:
|
||||||
name:
|
name: '{{ ssl_packages }}'
|
||||||
- python3-openssl
|
|
||||||
- python3-crypto
|
|
||||||
- python3-cryptography
|
|
||||||
- python-openssl
|
|
||||||
- python-crypto
|
|
||||||
- python-cryptography
|
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: create ssl directory
|
- name: create ssl directory
|
||||||
file:
|
file:
|
||||||
path: "/etc/ssl/{{ app_name }}"
|
path: '/etc/ssl/{{ app_name }}'
|
||||||
state: directory
|
state: directory
|
||||||
owner: "{{ app_user }}"
|
owner: '{{ app_user }}'
|
||||||
group: "{{ app_user }}"
|
group: '{{ app_user }}'
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
|
||||||
- name: generate an OpenSSL private key with the default values (4096 bits, RSA)
|
- name: generate an OpenSSL private key with the default values (4096 bits, RSA)
|
||||||
become_user: "{{ app_user }}"
|
become_user: '{{ app_user }}'
|
||||||
openssl_privatekey:
|
openssl_privatekey:
|
||||||
path: "/etc/ssl/{{ app_name }}/local.pem"
|
path: '/etc/ssl/{{ app_name }}/local.pem'
|
||||||
|
|
||||||
- name: generate an OpenSSL certificate signing request
|
- name: generate an OpenSSL certificate signing request
|
||||||
become_user: "{{ app_user }}"
|
become_user: '{{ app_user }}'
|
||||||
openssl_csr:
|
openssl_csr:
|
||||||
path: "/etc/ssl/{{ app_name }}/local.csr"
|
path: '/etc/ssl/{{ app_name }}/local.csr'
|
||||||
privatekey_path: "/etc/ssl/{{ app_name }}/local.pem"
|
privatekey_path: '/etc/ssl/{{ app_name }}/local.pem'
|
||||||
common_name: fudiggity.nl
|
common_name: fudiggity.nl
|
||||||
|
|
||||||
- name: generate a self signed OpenSSL certificate
|
- name: generate a self signed OpenSSL certificate
|
||||||
become_user: "{{ app_user }}"
|
become_user: '{{ app_user }}'
|
||||||
openssl_certificate:
|
openssl_certificate:
|
||||||
force: yes
|
force: true
|
||||||
path: "/etc/ssl/{{ app_name }}/{{ app_name }}.crt"
|
path: '/etc/ssl/{{ app_name }}/{{ app_name }}.crt'
|
||||||
privatekey_path: "/etc/ssl/{{ app_name }}/local.pem"
|
privatekey_path: '/etc/ssl/{{ app_name }}/local.pem'
|
||||||
csr_path: "/etc/ssl/{{ app_name }}/local.csr"
|
csr_path: '/etc/ssl/{{ app_name }}/local.csr'
|
||||||
provider: selfsigned
|
provider: selfsigned
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
- name: copy extra sudoers file
|
- name: copy extra sudoers file
|
||||||
template:
|
template:
|
||||||
src: "{{ item.src }}"
|
src: '{{ item.src }}'
|
||||||
dest: "{{ item.dest }}"
|
dest: '{{ item.dest }}'
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: "0644"
|
mode: '0644'
|
||||||
|
|
|
||||||
Reference in a new issue