Extend Ansible config
This commit is contained in:
parent
33e27a1e7a
commit
bc4c5deec4
4 changed files with 138 additions and 33 deletions
|
@ -1,4 +0,0 @@
|
||||||
APT::Periodic::Update-Package-Lists "1";
|
|
||||||
APT::Periodic::Unattended-Upgrade "1";
|
|
||||||
Unattended-Upgrade::Automatic-Reboot "true";
|
|
||||||
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
|
|
|
@ -1,12 +1,10 @@
|
||||||
---
|
# Ansible playbook for basic web server configuration.
|
||||||
# Run this with:
|
#
|
||||||
# ansible-playbook -i deploy/ansible/inventory.ini --become --ask-become-pass deploy/ansible/install.yml
|
# Run with:
|
||||||
|
# ANSIBLE_STDOUT_CALLBACK=debug ansible-playbook deploy/install.yml -i deploy/inventory.ini --verbose
|
||||||
# Other useful commands:
|
|
||||||
# ansible all -i [HOST], -u user -m ping
|
|
||||||
# ansible all -i [HOST], -u user -a /bin/date
|
|
||||||
# scp -3 -v [OLDHOST]:backup/backup.gz [HOST]:tmp/
|
|
||||||
|
|
||||||
|
# Notes:
|
||||||
|
#
|
||||||
# /etc/apache2 uses OS defaults aside from "site-available", "sites-enabled" and
|
# /etc/apache2 uses OS defaults aside from "site-available", "sites-enabled" and
|
||||||
# "conservancy.conf".
|
# "conservancy.conf".
|
||||||
#
|
#
|
||||||
|
@ -16,37 +14,84 @@
|
||||||
# SQLite database lives at /var/lib/www/database.
|
# SQLite database lives at /var/lib/www/database.
|
||||||
#
|
#
|
||||||
# Disabled Rackspace CDN videos.
|
# Disabled Rackspace CDN videos.
|
||||||
#
|
|
||||||
# No mail as yet.
|
|
||||||
#
|
|
||||||
# No etckeeper as yet.
|
|
||||||
#
|
|
||||||
# a2enmod ssl rewrite
|
|
||||||
|
|
||||||
- name: Configure web server
|
- name: Configure web server
|
||||||
hosts: web
|
hosts: web
|
||||||
# remote_user:
|
become: true
|
||||||
# become_user:
|
vars:
|
||||||
# become_method:
|
ansible_ssh_pipelining: true
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Install unattended upgrades
|
- name: Install unattended upgrades
|
||||||
apt:
|
apt:
|
||||||
name: unattended-upgrades
|
name: unattended-upgrades
|
||||||
|
|
||||||
- name: Configure unattended upgrades
|
- name: Configure unattended upgrades overrides
|
||||||
|
# See defaults in 50unattended-upgrades.
|
||||||
copy:
|
copy:
|
||||||
src: 20auto-upgrades
|
|
||||||
dest: /etc/apt/apt.conf.d/20auto-upgrades
|
dest: /etc/apt/apt.conf.d/20auto-upgrades
|
||||||
|
content: |
|
||||||
|
APT::Periodic::Update-Package-Lists "1";
|
||||||
|
APT::Periodic::Unattended-Upgrade "1";
|
||||||
|
Unattended-Upgrade::Automatic-Reboot "true";
|
||||||
|
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
|
||||||
|
Unattended-Upgrade::Mail "root";
|
||||||
|
|
||||||
|
- name: Add extensive history logging
|
||||||
|
blockinfile:
|
||||||
|
path: /etc/bash.bashrc
|
||||||
|
block: |
|
||||||
|
# Write to history file immediately (rather than only when shell is
|
||||||
|
# closed). For setting history length see HISTSIZE and HISTFILESIZE in
|
||||||
|
# bash(1).
|
||||||
|
shopt -s histappend
|
||||||
|
PROMPT_COMMAND='history -a'
|
||||||
|
HISTSIZE=1000000
|
||||||
|
HISTFILESIZE=1000000
|
||||||
|
insertafter: EOF
|
||||||
|
|
||||||
- name: Install Apache
|
- name: Install Apache
|
||||||
apt:
|
apt:
|
||||||
name: apache2,libapache2-mod-wsgi-py3
|
name: apache2,libapache2-mod-wsgi-py3
|
||||||
|
|
||||||
|
- apache2_module:
|
||||||
|
state: present
|
||||||
|
name: ssl
|
||||||
|
|
||||||
|
- apache2_module:
|
||||||
|
state: present
|
||||||
|
name: rewrite
|
||||||
|
|
||||||
- name: Install Postfix
|
- name: Install Postfix
|
||||||
apt:
|
apt:
|
||||||
# libsasl2-modules fixes "SASL authentication failure: No worthy mechs found"
|
pkg:
|
||||||
name: postfix,libsasl2-modules,mailutils
|
- postfix
|
||||||
|
# libsasl2-modules fixes "SASL authentication failure: No worthy mechs found"
|
||||||
|
- libsasl2-modules
|
||||||
|
- mailutils
|
||||||
|
|
||||||
|
# # Commented because you only want this on first run ever.
|
||||||
|
# - name: Add file for SMTP credentials
|
||||||
|
# copy:
|
||||||
|
# dest: /etc/postfix/sasl_passwd
|
||||||
|
# content: |-
|
||||||
|
# # After updating, run `sudo postmap hash:/etc/postfix/sasl_passwd`.
|
||||||
|
# [mail.sfconservancy.org]:587 conference@sfconservancy.org:PASSWORD
|
||||||
|
|
||||||
|
- name: Configure Postfix for relaying
|
||||||
|
copy:
|
||||||
|
src: postfix/main.cf
|
||||||
|
dest: /etc/postfix/main.cf
|
||||||
|
notify:
|
||||||
|
- restart postfix
|
||||||
|
|
||||||
|
- name: Alias mail to root
|
||||||
|
copy:
|
||||||
|
dest: /etc/aliases
|
||||||
|
content: |-
|
||||||
|
postmaster: root
|
||||||
|
root: sysadmin@sfconservancy.org, sysadmin@sturm.com.au
|
||||||
|
notify:
|
||||||
|
- restart postfix
|
||||||
|
|
||||||
- name: Install Certbot
|
- name: Install Certbot
|
||||||
apt:
|
apt:
|
||||||
|
@ -71,8 +116,8 @@
|
||||||
- name: Disable SSH password authentication
|
- name: Disable SSH password authentication
|
||||||
lineinfile:
|
lineinfile:
|
||||||
path: /etc/ssh/sshd_config
|
path: /etc/ssh/sshd_config
|
||||||
regexp: '^#?PasswordAuthentication '
|
|
||||||
line: 'PasswordAuthentication no'
|
line: 'PasswordAuthentication no'
|
||||||
|
regexp: 'PasswordAuthentication '
|
||||||
notify:
|
notify:
|
||||||
- restart sshd
|
- restart sshd
|
||||||
|
|
||||||
|
@ -88,6 +133,13 @@
|
||||||
group: www-data
|
group: www-data
|
||||||
mode: '0755'
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Git checkout
|
||||||
|
ansible.builtin.git:
|
||||||
|
repo: 'https://k.sfconservancy.org/website'
|
||||||
|
dest: /var/www/website
|
||||||
|
version: master
|
||||||
|
remote: upstream
|
||||||
|
|
||||||
- name: Create the database directory
|
- name: Create the database directory
|
||||||
file:
|
file:
|
||||||
path: /var/lib/www/database
|
path: /var/lib/www/database
|
||||||
|
@ -96,12 +148,6 @@
|
||||||
group: www-data
|
group: www-data
|
||||||
mode: '0755'
|
mode: '0755'
|
||||||
|
|
||||||
- name: Git checkout
|
|
||||||
ansible.builtin.git:
|
|
||||||
repo: 'https://k.sfconservancy.org/website'
|
|
||||||
dest: /var/www/website
|
|
||||||
version: master
|
|
||||||
|
|
||||||
- name: Create static dir
|
- name: Create static dir
|
||||||
file:
|
file:
|
||||||
path: /var/www/website/conservancy/static
|
path: /var/www/website/conservancy/static
|
||||||
|
@ -110,6 +156,12 @@
|
||||||
group: www-data
|
group: www-data
|
||||||
mode: '0755'
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Install `netfilter-persistent` && `iptables-persistent` packages
|
||||||
|
apt:
|
||||||
|
pkg:
|
||||||
|
- iptables-persistent
|
||||||
|
- netfilter-persistent
|
||||||
|
|
||||||
- name: Install iptables # May need kernel reload/reboot
|
- name: Install iptables # May need kernel reload/reboot
|
||||||
apt:
|
apt:
|
||||||
name: iptables,iptables-netflow-dkms
|
name: iptables,iptables-netflow-dkms
|
||||||
|
@ -225,3 +277,8 @@
|
||||||
service:
|
service:
|
||||||
name: ssh
|
name: ssh
|
||||||
state: reloaded
|
state: reloaded
|
||||||
|
|
||||||
|
- name: restart postfix
|
||||||
|
service:
|
||||||
|
name: postfix
|
||||||
|
state: reloaded
|
52
deploy/postfix/main.cf
Normal file
52
deploy/postfix/main.cf
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
|
||||||
|
|
||||||
|
|
||||||
|
# Debian specific: Specifying a file name will cause the first
|
||||||
|
# line of that file to be used as the name. The Debian default
|
||||||
|
# is /etc/mailname.
|
||||||
|
#myorigin = /etc/mailname
|
||||||
|
|
||||||
|
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
|
||||||
|
biff = no
|
||||||
|
|
||||||
|
# appending .domain is the MUA's job.
|
||||||
|
append_dot_mydomain = no
|
||||||
|
|
||||||
|
# Uncomment the next line to generate "delayed mail" warnings
|
||||||
|
#delay_warning_time = 4h
|
||||||
|
|
||||||
|
readme_directory = no
|
||||||
|
|
||||||
|
# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 3.6 on
|
||||||
|
# fresh installs.
|
||||||
|
compatibility_level = 3.6
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# TLS parameters
|
||||||
|
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
|
||||||
|
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
|
||||||
|
smtpd_tls_security_level=may
|
||||||
|
|
||||||
|
smtp_tls_CApath=/etc/ssl/certs
|
||||||
|
smtp_tls_security_level=secure
|
||||||
|
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
|
||||||
|
|
||||||
|
|
||||||
|
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
|
||||||
|
myhostname = hickory.sfconservancy.org
|
||||||
|
alias_maps = hash:/etc/aliases
|
||||||
|
alias_database = hash:/etc/aliases
|
||||||
|
myorigin = /etc/mailname
|
||||||
|
mydestination = $myhostname, hickory, localhost
|
||||||
|
relayhost = [mail.sfconservancy.org]:587
|
||||||
|
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
|
||||||
|
mailbox_size_limit = 0
|
||||||
|
recipient_delimiter = +
|
||||||
|
inet_interfaces = loopback-only
|
||||||
|
inet_protocols = all
|
||||||
|
|
||||||
|
# Relay authentication
|
||||||
|
smtp_sasl_auth_enable = yes
|
||||||
|
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
|
||||||
|
smtp_sasl_security_options = noanonymous
|
Loading…
Reference in a new issue