Don't use anymore submodules as there are too many
This commit is contained in:
parent
ff4577b5d5
commit
bdb4dadaa7
41 changed files with 5981 additions and 6 deletions
|
@ -1 +0,0 @@
|
|||
Subproject commit 18a1a5fd4527934ffc546b4d9bca9414f3763eac
|
6
roles/baseconfig/README.md
Normal file
6
roles/baseconfig/README.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Rôle baseconfig
|
||||
|
||||
Ce rôle Ansible a pour but de mettre en place une configuration de base.
|
||||
|
||||
Il doit être exécuté en tant que super-utilisateur
|
||||
(option `-b` pour `--become`).
|
3756
roles/baseconfig/files/skel/dot_zshrc
Normal file
3756
roles/baseconfig/files/skel/dot_zshrc
Normal file
File diff suppressed because it is too large
Load diff
326
roles/baseconfig/files/skel/dot_zshrc.local
Normal file
326
roles/baseconfig/files/skel/dot_zshrc.local
Normal file
|
@ -0,0 +1,326 @@
|
|||
# Filename: /etc/skel/.zshrc
|
||||
# Purpose: config file for zsh (z shell)
|
||||
# Authors: (c) grml-team (grml.org)
|
||||
# Bug-Reports: see http://grml.org/bugs/
|
||||
# License: This file is licensed under the GPL v2 or any later version.
|
||||
################################################################################
|
||||
# Nowadays, grml's zsh setup lives in only *one* zshrc file.
|
||||
# That is the global one: /etc/zsh/zshrc (from grml-etc-core).
|
||||
# It is best to leave *this* file untouched and do personal changes to
|
||||
# your zsh setup via ${HOME}/.zshrc.local which is loaded at the end of
|
||||
# the global zshrc.
|
||||
#
|
||||
# That way, we enable people on other operating systems to use our
|
||||
# setup, too, just by copying our global zshrc to their ${HOME}/.zshrc.
|
||||
# Adjustments would still go to the .zshrc.local file.
|
||||
################################################################################
|
||||
|
||||
## Aurore host color and white user
|
||||
zstyle ':prompt:grml:left:items:host' pre '%B%F{red}'
|
||||
zstyle ':prompt:grml:left:items:host' post '%f%b'
|
||||
zstyle ':prompt:grml:left:items:user' pre '%B'
|
||||
zstyle ':prompt:grml:left:items:user' post '%b'
|
||||
|
||||
## Settings for umask
|
||||
#if (( EUID == 0 )); then
|
||||
# umask 002
|
||||
#else
|
||||
# umask 022
|
||||
#fi
|
||||
|
||||
## Now, we'll give a few examples of what you might want to use in your
|
||||
## .zshrc.local file (just copy'n'paste and uncomment it there):
|
||||
|
||||
## Prompt theme extension ##
|
||||
|
||||
# Virtualenv support
|
||||
|
||||
#function virtual_env_prompt () {
|
||||
# REPLY=${VIRTUAL_ENV+(${VIRTUAL_ENV:t}) }
|
||||
#}
|
||||
#grml_theme_add_token virtual-env -f virtual_env_prompt '%F{magenta}' '%f'
|
||||
#zstyle ':prompt:grml:left:setup' items rc virtual-env change-root user at host path vcs percent
|
||||
|
||||
## ZLE tweaks ##
|
||||
|
||||
## use the vi navigation keys (hjkl) besides cursor keys in menu completion
|
||||
#bindkey -M menuselect 'h' vi-backward-char # left
|
||||
#bindkey -M menuselect 'k' vi-up-line-or-history # up
|
||||
#bindkey -M menuselect 'l' vi-forward-char # right
|
||||
#bindkey -M menuselect 'j' vi-down-line-or-history # bottom
|
||||
|
||||
## set command prediction from history, see 'man 1 zshcontrib'
|
||||
#is4 && zrcautoload predict-on && \
|
||||
#zle -N predict-on && \
|
||||
#zle -N predict-off && \
|
||||
#bindkey "^X^Z" predict-on && \
|
||||
#bindkey "^Z" predict-off
|
||||
|
||||
## press ctrl-q to quote line:
|
||||
#mquote () {
|
||||
# zle beginning-of-line
|
||||
# zle forward-word
|
||||
# # RBUFFER="'$RBUFFER'"
|
||||
# RBUFFER=${(q)RBUFFER}
|
||||
# zle end-of-line
|
||||
#}
|
||||
#zle -N mquote && bindkey '^q' mquote
|
||||
|
||||
## define word separators (for stuff like backward-word, forward-word, backward-kill-word,..)
|
||||
#WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>' # the default
|
||||
#WORDCHARS=.
|
||||
#WORDCHARS='*?_[]~=&;!#$%^(){}'
|
||||
#WORDCHARS='${WORDCHARS:s@/@}'
|
||||
|
||||
# just type '...' to get '../..'
|
||||
#rationalise-dot() {
|
||||
#local MATCH
|
||||
#if [[ $LBUFFER =~ '(^|/| | |'$'\n''|\||;|&)\.\.$' ]]; then
|
||||
# LBUFFER+=/
|
||||
# zle self-insert
|
||||
# zle self-insert
|
||||
#else
|
||||
# zle self-insert
|
||||
#fi
|
||||
#}
|
||||
#zle -N rationalise-dot
|
||||
#bindkey . rationalise-dot
|
||||
## without this, typing a . aborts incremental history search
|
||||
#bindkey -M isearch . self-insert
|
||||
|
||||
#bindkey '\eq' push-line-or-edit
|
||||
|
||||
## some popular options ##
|
||||
|
||||
## add `|' to output redirections in the history
|
||||
#setopt histallowclobber
|
||||
|
||||
## try to avoid the 'zsh: no matches found...'
|
||||
#setopt nonomatch
|
||||
|
||||
## warning if file exists ('cat /dev/null > ~/.zshrc')
|
||||
#setopt NO_clobber
|
||||
|
||||
## don't warn me about bg processes when exiting
|
||||
#setopt nocheckjobs
|
||||
|
||||
## alert me if something failed
|
||||
#setopt printexitvalue
|
||||
|
||||
## with spelling correction, assume dvorak kb
|
||||
#setopt dvorak
|
||||
|
||||
## Allow comments even in interactive shells
|
||||
#setopt interactivecomments
|
||||
|
||||
|
||||
## compsys related snippets ##
|
||||
|
||||
## changed completer settings
|
||||
#zstyle ':completion:*' completer _complete _correct _approximate
|
||||
#zstyle ':completion:*' expand prefix suffix
|
||||
|
||||
## another different completer setting: expand shell aliases
|
||||
#zstyle ':completion:*' completer _expand_alias _complete _approximate
|
||||
|
||||
## to have more convenient account completion, specify your logins:
|
||||
#my_accounts=(
|
||||
# {grml,grml1}@foo.invalid
|
||||
# grml-devel@bar.invalid
|
||||
#)
|
||||
#other_accounts=(
|
||||
# {fred,root}@foo.invalid
|
||||
# vera@bar.invalid
|
||||
#)
|
||||
#zstyle ':completion:*:my-accounts' users-hosts $my_accounts
|
||||
#zstyle ':completion:*:other-accounts' users-hosts $other_accounts
|
||||
|
||||
## add grml.org to your list of hosts
|
||||
#hosts+=(grml.org)
|
||||
#zstyle ':completion:*:hosts' hosts $hosts
|
||||
|
||||
## telnet on non-default ports? ...well:
|
||||
## specify specific port/service settings:
|
||||
#telnet_users_hosts_ports=(
|
||||
# user1@host1:
|
||||
# user2@host2:
|
||||
# @mail-server:{smtp,pop3}
|
||||
# @news-server:nntp
|
||||
# @proxy-server:8000
|
||||
#)
|
||||
#zstyle ':completion:*:*:telnet:*' users-hosts-ports $telnet_users_hosts_ports
|
||||
|
||||
## the default grml setup provides '..' as a completion. it does not provide
|
||||
## '.' though. If you want that too, use the following line:
|
||||
#zstyle ':completion:*' special-dirs true
|
||||
|
||||
## aliases ##
|
||||
|
||||
## translate
|
||||
#alias u='translate -i'
|
||||
|
||||
## ignore ~/.ssh/known_hosts entries
|
||||
#alias insecssh='ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null" -o "PreferredAuthentications=keyboard-interactive"'
|
||||
|
||||
|
||||
## global aliases (for those who like them) ##
|
||||
|
||||
#alias -g '...'='../..'
|
||||
#alias -g '....'='../../..'
|
||||
#alias -g BG='& exit'
|
||||
#alias -g C='|wc -l'
|
||||
#alias -g G='|grep'
|
||||
#alias -g H='|head'
|
||||
#alias -g Hl=' --help |& less -r'
|
||||
#alias -g K='|keep'
|
||||
#alias -g L='|less'
|
||||
#alias -g LL='|& less -r'
|
||||
#alias -g M='|most'
|
||||
#alias -g N='&>/dev/null'
|
||||
#alias -g R='| tr A-z N-za-m'
|
||||
#alias -g SL='| sort | less'
|
||||
#alias -g S='| sort'
|
||||
#alias -g T='|tail'
|
||||
#alias -g V='| vim -'
|
||||
|
||||
## instead of global aliase it might be better to use grmls $abk assoc array, whose contents are expanded after pressing ,.
|
||||
#$abk[SnL]="| sort -n | less"
|
||||
|
||||
## get top 10 shell commands:
|
||||
#alias top10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10'
|
||||
|
||||
## Execute \kbd{./configure}
|
||||
#alias CO="./configure"
|
||||
|
||||
## Execute \kbd{./configure --help}
|
||||
#alias CH="./configure --help"
|
||||
|
||||
## miscellaneous code ##
|
||||
|
||||
## Use a default width of 80 for manpages for more convenient reading
|
||||
#export MANWIDTH=${MANWIDTH:-80}
|
||||
|
||||
## Set a search path for the cd builtin
|
||||
#cdpath=(.. ~)
|
||||
|
||||
## variation of our manzsh() function; pick you poison:
|
||||
#manzsh() { /usr/bin/man zshall | most +/"$1" ; }
|
||||
|
||||
## Switching shell safely and efficiently? http://www.zsh.org/mla/workers/2001/msg02410.html
|
||||
#bash() {
|
||||
# NO_SWITCH="yes" command bash "$@"
|
||||
#}
|
||||
#restart () {
|
||||
# exec $SHELL $SHELL_ARGS "$@"
|
||||
#}
|
||||
|
||||
## Handy functions for use with the (e::) globbing qualifier (like nt)
|
||||
#contains() { grep -q "$*" $REPLY }
|
||||
#sameas() { diff -q "$*" $REPLY &>/dev/null }
|
||||
#ot () { [[ $REPLY -ot ${~1} ]] }
|
||||
|
||||
## get_ic() - queries imap servers for capabilities; real simple. no imaps
|
||||
#ic_get() {
|
||||
# emulate -L zsh
|
||||
# local port
|
||||
# if [[ ! -z $1 ]] ; then
|
||||
# port=${2:-143}
|
||||
# print "querying imap server on $1:${port}...\n";
|
||||
# print "a1 capability\na2 logout\n" | nc $1 ${port}
|
||||
# else
|
||||
# print "usage:\n $0 <imap-server> [port]"
|
||||
# fi
|
||||
#}
|
||||
|
||||
## List all occurrences of programm in current PATH
|
||||
#plap() {
|
||||
# emulate -L zsh
|
||||
# if [[ $# = 0 ]] ; then
|
||||
# echo "Usage: $0 program"
|
||||
# echo "Example: $0 zsh"
|
||||
# echo "Lists all occurrences of program in the current PATH."
|
||||
# else
|
||||
# ls -l ${^path}/*$1*(*N)
|
||||
# fi
|
||||
#}
|
||||
|
||||
## Find out which libs define a symbol
|
||||
#lcheck() {
|
||||
# if [[ -n "$1" ]] ; then
|
||||
# nm -go /usr/lib/lib*.a 2>/dev/null | grep ":[[:xdigit:]]\{8\} . .*$1"
|
||||
# else
|
||||
# echo "Usage: lcheck <function>" >&2
|
||||
# fi
|
||||
#}
|
||||
|
||||
## Download a file and display it locally
|
||||
#uopen() {
|
||||
# emulate -L zsh
|
||||
# if ! [[ -n "$1" ]] ; then
|
||||
# print "Usage: uopen \$URL/\$file">&2
|
||||
# return 1
|
||||
# else
|
||||
# FILE=$1
|
||||
# MIME=$(curl --head $FILE | \
|
||||
# grep Content-Type | \
|
||||
# cut -d ' ' -f 2 | \
|
||||
# cut -d\; -f 1)
|
||||
# MIME=${MIME%$'\r'}
|
||||
# curl $FILE | see ${MIME}:-
|
||||
# fi
|
||||
#}
|
||||
|
||||
## Memory overview
|
||||
#memusage() {
|
||||
# ps aux | awk '{if (NR > 1) print $5;
|
||||
# if (NR > 2) print "+"}
|
||||
# END { print "p" }' | dc
|
||||
#}
|
||||
|
||||
## print hex value of a number
|
||||
#hex() {
|
||||
# emulate -L zsh
|
||||
# if [[ -n "$1" ]]; then
|
||||
# printf "%x\n" $1
|
||||
# else
|
||||
# print 'Usage: hex <number-to-convert>'
|
||||
# return 1
|
||||
# fi
|
||||
#}
|
||||
|
||||
## log out? set timeout in seconds...
|
||||
## ...and do not log out in some specific terminals:
|
||||
#if [[ "${TERM}" == ([Exa]term*|rxvt|dtterm|screen*) ]] ; then
|
||||
# unset TMOUT
|
||||
#else
|
||||
# TMOUT=1800
|
||||
#fi
|
||||
|
||||
## associate types and extensions (be aware with perl scripts and anwanted behaviour!)
|
||||
#check_com zsh-mime-setup || { autoload zsh-mime-setup && zsh-mime-setup }
|
||||
#alias -s pl='perl -S'
|
||||
|
||||
## ctrl-s will no longer freeze the terminal.
|
||||
#stty erase "^?"
|
||||
|
||||
## you want to automatically use a bigger font on big terminals?
|
||||
#if [[ "$TERM" == "xterm" ]] && [[ "$LINES" -ge 50 ]] && [[ "$COLUMNS" -ge 100 ]] && [[ -z "$SSH_CONNECTION" ]] ; then
|
||||
# large
|
||||
#fi
|
||||
|
||||
## Some quick Perl-hacks aka /useful/ oneliner
|
||||
#bew() { perl -le 'print unpack "B*","'$1'"' }
|
||||
#web() { perl -le 'print pack "B*","'$1'"' }
|
||||
#hew() { perl -le 'print unpack "H*","'$1'"' }
|
||||
#weh() { perl -le 'print pack "H*","'$1'"' }
|
||||
#pversion() { perl -M$1 -le "print $1->VERSION" } # i. e."pversion LWP -> 5.79"
|
||||
#getlinks () { perl -ne 'while ( m/"((www|ftp|http):\/\/.*?)"/gc ) { print $1, "\n"; }' $* }
|
||||
#gethrefs () { perl -ne 'while ( m/href="([^"]*)"/gc ) { print $1, "\n"; }' $* }
|
||||
#getanames () { perl -ne 'while ( m/a name="([^"]*)"/gc ) { print $1, "\n"; }' $* }
|
||||
#getforms () { perl -ne 'while ( m:(\</?(input|form|select|option).*?\>):gic ) { print $1, "\n"; }' $* }
|
||||
#getstrings () { perl -ne 'while ( m/"(.*?)"/gc ) { print $1, "\n"; }' $*}
|
||||
#showINC () { perl -e 'for (@INC) { printf "%d %s\n", $i++, $_ }' }
|
||||
#vimpm () { vim `perldoc -l $1 | sed -e 's/pod$/pm/'` }
|
||||
#vimhelp () { vim -c "help $1" -c on -c "au! VimEnter *" }
|
||||
|
||||
## END OF FILE #################################################################
|
40
roles/baseconfig/files/update-motd.d/00-logo
Executable file
40
roles/baseconfig/files/update-motd.d/00-logo
Executable file
|
@ -0,0 +1,40 @@
|
|||
#!/bin/sh
|
||||
# /etc/update-motd.d/00-logo
|
||||
# Deployed with Aurore Ansible !
|
||||
|
||||
# Pretty uptime
|
||||
upSeconds="$(/usr/bin/cut -d. -f1 /proc/uptime)"
|
||||
mins=$((${upSeconds}/60%60))
|
||||
hours=$((${upSeconds}/3600%24))
|
||||
days=$((${upSeconds}/86400))
|
||||
UPTIME=`printf "%d jours, %02dh%02dm" "$days" "$hours" "$mins"`
|
||||
|
||||
# RAM
|
||||
RAM=`free -m | awk 'NR==2{printf "%s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'`
|
||||
DISK=`df -h | awk '$NF=="/"{printf "%d/%dGB (%s)\n", $3,$2,$5}'`
|
||||
|
||||
# Text font
|
||||
bold=$(tput bold)
|
||||
normal=$(tput sgr0)
|
||||
|
||||
# Logo
|
||||
cat << EOF
|
||||
[49m[K[0m
|
||||
[0m [48;5;160m[38;5;160m [48;5;124m[38;5;124m [48;5;160m[38;5;160m [0m [49m ${bold}Uptime${normal} : ${UPTIME}
|
||||
[0m [48;5;160m[38;5;160m [0m [49m ${bold}Mémoire${normal} : ${RAM}
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m ${bold}Disque racine${normal} : ${DISK}
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;160m[38;5;160m [48;5;124m[38;5;124m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [48;5;52m[38;5;196m [0m [49m
|
||||
[0m [48;5;124m[38;5;124m [0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [48;5;124m[38;5;124m [0m[49m
|
||||
[0m [48;5;124m[38;5;124m [48;5;160m[38;5;160m [0m [48;5;188m[38;5;188m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m[49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;160m[38;5;160m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m[49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;160m[38;5;160m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m[49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;124m[38;5;124m [0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [0m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [0m [48;5;231m[38;5;232m [48;5;160m[38;5;160m [0m [49m
|
||||
[0m [48;5;160m[38;5;160m [0m [48;5;231m[38;5;232m [48;5;160m[38;5;160m [0m [49m
|
||||
|
||||
EOF
|
20
roles/baseconfig/tasks/apt-listchanges.yml
Normal file
20
roles/baseconfig/tasks/apt-listchanges.yml
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
# Install apt-listchanges
|
||||
- name: Install apt-listchanges
|
||||
when: ansible_os_family == "Debian"
|
||||
apt:
|
||||
name: apt-listchanges
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
# Send email when there is something new
|
||||
- name: Configure apt-listchanges
|
||||
lineinfile:
|
||||
dest: /etc/apt/listchanges.conf
|
||||
regexp: "^{{ item.key }}="
|
||||
line: "{{ item.value }}"
|
||||
with_dict:
|
||||
confirm: 'confirm=true'
|
||||
email_address: "email_address={{ monitoring_mail }}"
|
||||
which: 'which=both'
|
||||
|
58
roles/baseconfig/tasks/main.yml
Normal file
58
roles/baseconfig/tasks/main.yml
Normal file
|
@ -0,0 +1,58 @@
|
|||
---
|
||||
# Should contain only small tools that everyone can't live without
|
||||
- name: Install basic tools
|
||||
when: ansible_os_family == "Debian"
|
||||
apt:
|
||||
name: "{{ packages }}"
|
||||
state: present
|
||||
update_cache: yes
|
||||
vars:
|
||||
packages:
|
||||
- bash-completion # for bash users
|
||||
- zsh # alternative shell
|
||||
- sudo # to gain root access
|
||||
- git # code versioning
|
||||
- nano # basic text editor
|
||||
- vim # like nano but more powerful and complex
|
||||
- htop # better than top
|
||||
- less # i like cats
|
||||
- tree # create a graphical tree of files
|
||||
- ipython # better Python shell
|
||||
- acl # for Ansible become support
|
||||
|
||||
# Pimp my server
|
||||
- name: Customize motd
|
||||
copy:
|
||||
src: 'update-motd.d/00-logo'
|
||||
dest: '/etc/update-motd.d/00-logo'
|
||||
mode: 0755
|
||||
|
||||
# Configure APT mirrors on Debian Stretch
|
||||
- name: Configure APT mirrors
|
||||
when: ansible_distribution == 'Debian' and ansible_distribution_release == 'stretch'
|
||||
template:
|
||||
src: 'apt/sources.list'
|
||||
dest: '/etc/apt/sources.list'
|
||||
mode: 0644
|
||||
|
||||
# Patriotisme
|
||||
- name: Ensure French UTF-8 locale exists
|
||||
locale_gen:
|
||||
name: fr_FR.UTF-8
|
||||
state: present
|
||||
|
||||
# Molly-Guard : prevent accidental shutdowns
|
||||
- include_tasks: molly-guard.yml
|
||||
|
||||
# APT-List Changes : send email with changelog
|
||||
- include_tasks: apt-listchanges.yml
|
||||
|
||||
# User skeleton
|
||||
- name: Configure user skeleton
|
||||
copy:
|
||||
src: skel/{{ item.key }}
|
||||
dest: /etc/skel/{{ item.value }}
|
||||
with_dict:
|
||||
dot_zshrc: .zshrc
|
||||
dot_zshrc.local: .zshrc.local
|
||||
|
16
roles/baseconfig/tasks/molly-guard.yml
Normal file
16
roles/baseconfig/tasks/molly-guard.yml
Normal file
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
# Install molly-guard
|
||||
- name: Install molly-guard
|
||||
when: ansible_os_family == "Debian"
|
||||
apt:
|
||||
name: molly-guard
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
# Always ask for hostname
|
||||
- name: Configure molly-guard
|
||||
lineinfile:
|
||||
dest: /etc/molly-guard/rc
|
||||
regexp: '^#*\s*ALWAYS_QUERY_HOSTNAME.*$'
|
||||
line: 'ALWAYS_QUERY_HOSTNAME=true'
|
||||
|
32
roles/baseconfig/templates/apt/sources.list
Normal file
32
roles/baseconfig/templates/apt/sources.list
Normal file
|
@ -0,0 +1,32 @@
|
|||
# /etc/apt/sources.list
|
||||
# Deployed with Aurore Ansible !
|
||||
{# #}
|
||||
{# Default mirror #}
|
||||
{% if debian_mirror is not defined %}
|
||||
{% set debian_mirror = 'http://ftp.fr.debian.org/debian' %}
|
||||
{% endif %}
|
||||
{# #}
|
||||
{# Default security mirror #}
|
||||
{% if debian_security_mirror is not defined %}
|
||||
{% set debian_security_mirror = 'http://security.debian.org' %}
|
||||
{% endif %}
|
||||
{# #}
|
||||
{# Default components #}
|
||||
{% if debian_components is not defined %}
|
||||
{% set debian_components = 'main contrib' %}
|
||||
{% endif %}
|
||||
|
||||
# Classic updates
|
||||
deb {{ debian_mirror }} {{ ansible_distribution_release }} {{ debian_components }}
|
||||
|
||||
# Frequent updates
|
||||
deb {{ debian_mirror }} {{ ansible_distribution_release }}-updates {{ debian_components }}
|
||||
|
||||
# Security updates
|
||||
deb {{ debian_security_mirror }} {{ ansible_distribution_release }}/updates {{ debian_components }}
|
||||
|
||||
{% if debian_backport is defined and debian_backport %}
|
||||
# Backports
|
||||
deb {{ debian_security_mirror }} {{ ansible_distribution_release }}-backports {{ debian_components }}
|
||||
{% endif %}
|
||||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 09558fca2433a9ebda515f790500305ebcd8484d
|
13
roles/dokuwiki/README.md
Normal file
13
roles/dokuwiki/README.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Rôle baseconfig
|
||||
|
||||
Ce rôle Ansible permet d'installer DokuWiki avec un serveur Apache et PHP7.
|
||||
|
||||
Il doit être exécuté en tant que super-utilisateur
|
||||
(option `-b` pour `--become`).
|
||||
|
||||
## Migration future à Buster
|
||||
|
||||
Actuellement le paquet DokuWiki est pinné sur Debian Buster.
|
||||
Quand il sera sorti et que l'on passera dessus on pourra supprimer la
|
||||
majorité des tâches de ce rôle.
|
||||
|
24
roles/dokuwiki/tasks/main.yml
Normal file
24
roles/dokuwiki/tasks/main.yml
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
# For DokuWiki package
|
||||
- name: Configure Debian Buster mirrors
|
||||
when: ansible_distribution == 'Debian' and ansible_distribution_release == 'stretch'
|
||||
template:
|
||||
src: 'apt/buster.list'
|
||||
dest: '/etc/apt/sources.list.d/buster.list'
|
||||
mode: 0644
|
||||
|
||||
# For DokuWiki package
|
||||
- name: Configure DokuWiki pin
|
||||
when: ansible_distribution == 'Debian' and ansible_distribution_release == 'stretch'
|
||||
template:
|
||||
src: 'apt/dokuwiki'
|
||||
dest: '/etc/apt/preferences.d/dokuwiki'
|
||||
mode: 0644
|
||||
|
||||
# Install
|
||||
- name: Install DokuWiki
|
||||
apt:
|
||||
name: dokuwiki
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
11
roles/dokuwiki/templates/apt/buster.list
Normal file
11
roles/dokuwiki/templates/apt/buster.list
Normal file
|
@ -0,0 +1,11 @@
|
|||
# /etc/apt/sources.list.d/buster.list
|
||||
# Deployed with Aurore Ansible !
|
||||
{# #}
|
||||
{# Default mirror #}
|
||||
{% if debian_mirror is not defined %}
|
||||
{% set debian_mirror = 'http://ftp.fr.debian.org/debian' %}
|
||||
{% endif %}
|
||||
|
||||
deb {{ debian_mirror }} buster main
|
||||
deb-src {{ debian_mirror }} buster main
|
||||
|
11
roles/dokuwiki/templates/apt/dokuwiki
Normal file
11
roles/dokuwiki/templates/apt/dokuwiki
Normal file
|
@ -0,0 +1,11 @@
|
|||
# /etc/apt/preferences.d/dokuwiki
|
||||
# Deployed with Aurore Ansible !
|
||||
|
||||
Package: *
|
||||
Pin: release n=stretch*
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: dokuwiki
|
||||
Pin: release n=buster
|
||||
Pin-Priority: 990
|
||||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 4a621d81d23f14e6f5efc2b55e0a16df6c7c38f9
|
7
roles/etherpad/README.md
Normal file
7
roles/etherpad/README.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Rôle EtherPad
|
||||
|
||||
Ce rôle Ansible permet d'installer EtherPad.
|
||||
|
||||
Il doit être exécuté en tant que super-utilisateur
|
||||
(option `-b` pour `--become`).
|
||||
|
5
roles/etherpad/handlers/main.yml
Normal file
5
roles/etherpad/handlers/main.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
# Reload systemd daemons when a service file changes
|
||||
- name: Reload systemd daemons
|
||||
command: systemctl daemon-reload
|
||||
|
22
roles/etherpad/tasks/0_apt_dependencies.yml
Normal file
22
roles/etherpad/tasks/0_apt_dependencies.yml
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
# For NodeJS package
|
||||
- name: Configure NodeJS pin
|
||||
when: ansible_distribution == 'Debian' and ansible_distribution_release == 'stretch'
|
||||
template:
|
||||
src: 'apt/nodejs'
|
||||
dest: '/etc/apt/preferences.d/nodejs'
|
||||
mode: 0644
|
||||
|
||||
# Install EtherPad dependencies
|
||||
- name: Install required packages
|
||||
apt:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
update_cache: yes
|
||||
with_items:
|
||||
- build-essential
|
||||
- curl
|
||||
- git
|
||||
- nodejs
|
||||
- npm
|
||||
|
27
roles/etherpad/tasks/1_user_group.yml
Normal file
27
roles/etherpad/tasks/1_user_group.yml
Normal file
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
# Security #1
|
||||
- name: Create EtherPad system group
|
||||
group:
|
||||
name: etherpad
|
||||
system: yes
|
||||
state: present
|
||||
|
||||
# Security #2
|
||||
- name: Create EtherPad user
|
||||
user:
|
||||
name: etherpad
|
||||
group: etherpad
|
||||
home: '/var/local/etherpad'
|
||||
comment: EtherPad
|
||||
system: yes
|
||||
state: present
|
||||
|
||||
# Security #3
|
||||
- name: Secure Etherpad home directory
|
||||
file:
|
||||
path: '/var/local/etherpad'
|
||||
state: directory
|
||||
owner: etherpad
|
||||
group: etherpad
|
||||
mode: 0750
|
||||
|
60
roles/etherpad/tasks/main.yml
Normal file
60
roles/etherpad/tasks/main.yml
Normal file
|
@ -0,0 +1,60 @@
|
|||
---
|
||||
# Install APT dependencies
|
||||
- include_tasks: 0_apt_dependencies.yml
|
||||
|
||||
# Create EtherPad user and group
|
||||
- include_tasks: 1_user_group.yml
|
||||
|
||||
# Download EtherPad
|
||||
- name: Clone EtherPad project
|
||||
git:
|
||||
repo: 'https://github.com/ether/etherpad-lite.git'
|
||||
dest: '/var/local/etherpad/etherpad-lite'
|
||||
version: master
|
||||
become: true
|
||||
become_user: etherpad
|
||||
|
||||
# Installation script
|
||||
# TODO: move this in a handler
|
||||
- name: Install Etherpad dependencies
|
||||
command: bin/installDeps.sh
|
||||
args:
|
||||
chdir: '/var/local/etherpad/etherpad-lite'
|
||||
become: true
|
||||
become_user: etherpad
|
||||
|
||||
# Configuration
|
||||
- name: Configure EtherPad
|
||||
lineinfile:
|
||||
dest: '/var/local/etherpad/etherpad-lite/settings.json'
|
||||
regexp: '^\s*"{{ item.key }}"'
|
||||
line: "{{ item.value }}"
|
||||
with_dict:
|
||||
title: " \"title\": \"Etherpad Aurore\","
|
||||
dbType: " \"dbType\" : \"postgres\","
|
||||
defaultPadText: " \"defaultPadText\" : \"Bienvenue sur l'EtherPad d'Aurore !\\n\\nCe pad est synchronisé avec les autres utilisateur·rice·s présent·e·s sur cette page.\\n\","
|
||||
lang: " \"lang\": \"fr-fr\""
|
||||
|
||||
# Service file
|
||||
- name: Install EtherPad systemd unit
|
||||
template:
|
||||
src: 'systemd/etherpad-lite.service.j2'
|
||||
dest: '/etc/systemd/system/etherpad-lite.service'
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
notify: Reload systemd daemons
|
||||
|
||||
# Run
|
||||
- name: Ensure that EtherPad is started
|
||||
service:
|
||||
name: etherpad-lite
|
||||
state: started
|
||||
enabled: True
|
||||
|
||||
# La configuration de la clé `dbSettings` n'est pas encore automatisé !
|
||||
|
||||
# TODO-list
|
||||
# * Configure admin user, logs
|
||||
# Plugins : https://framacloud.org/fr/cultiver-son-jardin/etherpad.html#concernant-framapad
|
||||
|
7
roles/etherpad/templates/apt/nodejs
Normal file
7
roles/etherpad/templates/apt/nodejs
Normal file
|
@ -0,0 +1,7 @@
|
|||
# /etc/apt/preferences.d/dokuwiki
|
||||
# Deployed with Aurore Ansible !
|
||||
|
||||
Package: node* libuv1*
|
||||
Pin: release a=stretch-backports
|
||||
Pin-Priority: 600
|
||||
|
19
roles/etherpad/templates/systemd/etherpad-lite.service.j2
Normal file
19
roles/etherpad/templates/systemd/etherpad-lite.service.j2
Normal file
|
@ -0,0 +1,19 @@
|
|||
# /etc/systemd/system/etherpad-lite.service
|
||||
# Deployed with Aurore Ansible !
|
||||
|
||||
[Unit]
|
||||
Description=Etherpad-lite, the collaborative editor.
|
||||
After=syslog.target network-online.target mysql.service postgresql.service
|
||||
Conflicts=shutdown.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=etherpad
|
||||
Group=etherpad
|
||||
WorkingDirectory=/var/local/etherpad/etherpad-lite
|
||||
ExecStart=/usr/bin/nodejs /var/local/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit f6dbb1d53fe8f81fabf0e0a6101bc54473d9abd3
|
7
roles/ldap-client/README.md
Normal file
7
roles/ldap-client/README.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Rôle LDAP client
|
||||
|
||||
Ce rôle Ansible a pour but de mettre en place l'authentification
|
||||
sur un serveur par LDAP.
|
||||
|
||||
Il doit être exécuté en tant que super-utilisateur
|
||||
(option `-b` pour `--become`).
|
17
roles/ldap-client/handlers/main.yml
Normal file
17
roles/ldap-client/handlers/main.yml
Normal file
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
- name: Reconfigure libnss-ldapd package
|
||||
command: 'dpkg-reconfigure libnss-ldapd -f noninteractive'
|
||||
|
||||
- name: Restart nslcd service
|
||||
service:
|
||||
name: nslcd
|
||||
state: restarted
|
||||
|
||||
# Empty cache when nslcd is restarted
|
||||
- name: Restart nscd service
|
||||
service:
|
||||
name: nscd
|
||||
state: restarted
|
||||
ignore_errors: true # Sometimes service do not exist
|
||||
listen: 'Restart nslcd service'
|
||||
|
41
roles/ldap-client/tasks/0_install_ldap.yml
Normal file
41
roles/ldap-client/tasks/0_install_ldap.yml
Normal file
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
# Install LDAP client packages
|
||||
- name: Install LDAP client packages
|
||||
apt:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
update_cache: yes
|
||||
with_items:
|
||||
- nslcd
|
||||
- libnss-ldapd
|
||||
- libpam-ldapd
|
||||
|
||||
# Reduce LDAP load
|
||||
# For the moment it is broken on Stretch when using PHP7.3
|
||||
#- name: Install LDAP cache package
|
||||
# apt:
|
||||
# name: nscd
|
||||
# state: present
|
||||
# update_cache: yes
|
||||
|
||||
# Configure /etc/nslcd.conf
|
||||
- name: Configure nslcd LDAP credentials
|
||||
template:
|
||||
src: nslcd.conf.j2
|
||||
dest: /etc/nslcd.conf
|
||||
mode: 0600
|
||||
notify: 'Restart nslcd service'
|
||||
|
||||
# Configure /etc/nsswitch.conf
|
||||
- name: Configure NSS to use LDAP
|
||||
lineinfile:
|
||||
dest: /etc/nsswitch.conf
|
||||
regexp: "^{{ item.key }}:"
|
||||
line: "{{ item.value }}"
|
||||
with_dict:
|
||||
passwd: 'passwd: files ldap'
|
||||
group: 'group: files ldap'
|
||||
shadow: 'shadow: files ldap'
|
||||
sudoers: 'sudoers: files ldap'
|
||||
notify: 'Restart nslcd service'
|
||||
|
21
roles/ldap-client/tasks/1_group_security.yml
Normal file
21
roles/ldap-client/tasks/1_group_security.yml
Normal file
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
# Filter SSH on groups
|
||||
- name: Filter SSH on groups
|
||||
lineinfile:
|
||||
dest: /etc/ssh/sshd_config
|
||||
regexp: '^AllowGroups'
|
||||
line: "AllowGroups root sudoldap aurore ssh"
|
||||
|
||||
# To gain root access with ldap rights
|
||||
- name: Install SUDO package
|
||||
package:
|
||||
name: sudo
|
||||
state: present
|
||||
|
||||
# Set sudo group
|
||||
- name: Configure sudoers
|
||||
lineinfile:
|
||||
dest: /etc/sudoers
|
||||
regexp: "^%{{ sudo_group }}"
|
||||
line: "%{{ sudo_group }} ALL=(ALL:ALL) ALL"
|
||||
|
18
roles/ldap-client/tasks/2_userland_scripts.yml
Normal file
18
roles/ldap-client/tasks/2_userland_scripts.yml
Normal file
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
# Disable passwd and chsh
|
||||
- name: Copy passwd and chsh scripts
|
||||
template:
|
||||
src: "{{ item }}"
|
||||
dest: /usr/local/bin/
|
||||
mode: 0755
|
||||
with_items:
|
||||
- 'chsh'
|
||||
- 'passwd'
|
||||
|
||||
# We do not want password change this way
|
||||
- name: Symlink chsh.ldap to chsh
|
||||
file:
|
||||
src: "/usr/local/bin/chsh"
|
||||
dest: "/usr/local/bin/chsh.ldap"
|
||||
state: link
|
||||
|
25
roles/ldap-client/tasks/main.yml
Normal file
25
roles/ldap-client/tasks/main.yml
Normal file
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
# Install and configure main LDAP tools
|
||||
- include_tasks: 0_install_ldap.yml
|
||||
|
||||
# Filter who can access server and sudo on groups
|
||||
- include_tasks: 1_group_security.yml
|
||||
|
||||
# Some userland scripts specific to LDAP install
|
||||
- include_tasks: 2_userland_scripts.yml
|
||||
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=568577
|
||||
- name: Ensure home directories are created upon login
|
||||
lineinfile:
|
||||
dest: /etc/pam.d/common-account
|
||||
regexp: 'pam_mkhomedir\.so'
|
||||
line: "session required pam_mkhomedir.so skel=/etc/skel/ umask=0077"
|
||||
|
||||
# If LDAP crashes
|
||||
- name: Install SSH keys for root account
|
||||
authorized_key:
|
||||
user: root
|
||||
key: "{{ ssh_pub_keys }}"
|
||||
state: present
|
||||
# exclusive: True
|
||||
|
3
roles/ldap-client/templates/chsh
Normal file
3
roles/ldap-client/templates/chsh
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
echo "Pour changer votre shell,\nAllez sur l'intranet : {{intranet_url}}"
|
||||
|
39
roles/ldap-client/templates/nslcd.conf.j2
Normal file
39
roles/ldap-client/templates/nslcd.conf.j2
Normal file
|
@ -0,0 +1,39 @@
|
|||
# /etc/nslcd.conf
|
||||
# Deployed with Aurore Ansible !
|
||||
|
||||
# The user and group nslcd should run as.
|
||||
uid nslcd
|
||||
gid nslcd
|
||||
|
||||
# The location at which the LDAP server(s) should be reachable.
|
||||
{% if ldap_local_replica_uri is defined %}
|
||||
{% for uri in ldap_local_replica_uri %}
|
||||
uri {{ uri }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
uri {{ ldap_master_uri }}
|
||||
|
||||
# The search base that will be used for all queries.
|
||||
base {{ ldap_base }}
|
||||
base passwd cn=Utilisateurs,{{ ldap_base }}
|
||||
base shadow cn=Utilisateurs,{{ ldap_base }}
|
||||
base group ou=posix,ou=groups,{{ ldap_base }}
|
||||
|
||||
# The LDAP protocol version to use.
|
||||
ldap_version 3
|
||||
|
||||
# The DN to bind with for normal lookups.
|
||||
binddn {{ ldap_nslcd_bind_dn }}
|
||||
bindpw {{ ldap_nslcd_passwd }}
|
||||
|
||||
# The DN used for password modifications by root.
|
||||
#rootpwmoddn cn=admin,dc=example,dc=com
|
||||
|
||||
# SSL options
|
||||
#ssl off
|
||||
#tls_reqcert never
|
||||
tls_cacertfile /etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
# The search scope.
|
||||
#scope sub
|
||||
|
3
roles/ldap-client/templates/passwd
Normal file
3
roles/ldap-client/templates/passwd
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
echo "Pour changer votre mot de passe,\nAllez sur l'intranet : {{intranet_url}}"
|
||||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit b1e548be79082a67574962323e30a14434b86ec0
|
10
roles/ldap-replica/README.md
Normal file
10
roles/ldap-replica/README.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
# Rôle LDAP replica
|
||||
|
||||
Ce rôle Ansible a pour but de mettre en place un serveur de replication LDAP.
|
||||
|
||||
Il doit être exécuté en tant que super-utilisateur
|
||||
(option `-b` pour `--become`).
|
||||
|
||||
DANGER ! Pour le moment il flushe le LDAP a chaque exécution à cause de la
|
||||
façon dont l'installation de re2o se fait. Donc ne l'exécutez pas pour tester !
|
||||
|
57
roles/ldap-replica/tasks/main.yml
Normal file
57
roles/ldap-replica/tasks/main.yml
Normal file
|
@ -0,0 +1,57 @@
|
|||
---
|
||||
# slapd is OpenLDAP server
|
||||
- name: Install LDAP server
|
||||
apt:
|
||||
name: slapd
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
# What is written after is really not a nice way to install a schema
|
||||
# because the LDAP is being flushed away always...
|
||||
# This is a problem in re2o installation method that may be fixed in the future.
|
||||
|
||||
# Much nicer than install_re2o.sh way
|
||||
- name: Build schema
|
||||
template:
|
||||
src: schema.ldiff.j2
|
||||
dest: /etc/ldap/schema.ldiff
|
||||
mode: 0600
|
||||
|
||||
# Downtime!
|
||||
- name: Stop LDAP server
|
||||
service: name=slapd state=stopped
|
||||
|
||||
# Cry a bit
|
||||
- name: Remove old data
|
||||
file: path={{ item }} state=absent
|
||||
with_items:
|
||||
- /etc/ldap/slapd.d
|
||||
- /var/lib/ldap
|
||||
|
||||
# Cry a lot
|
||||
- name: Recreate structure
|
||||
file: path={{ item }} state=directory
|
||||
with_items:
|
||||
- /etc/ldap/slapd.d
|
||||
- /var/lib/ldap
|
||||
|
||||
# Install schema as root
|
||||
# We can't do a `become_user` here
|
||||
- name: Install LDAP schema
|
||||
command: 'slapadd -n 0 -l /etc/ldap/schema.ldiff -F /etc/ldap/slapd.d'
|
||||
|
||||
# then fix permissions
|
||||
- name: Fix permissions
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
owner: openldap
|
||||
group: openldap
|
||||
recurse: yes
|
||||
with_items:
|
||||
- '/var/lib/ldap'
|
||||
- '/etc/ldap/slapd.d'
|
||||
|
||||
# Save the day
|
||||
- name: Start LDAP server
|
||||
service: name=slapd state=started
|
||||
|
1187
roles/ldap-replica/templates/schema.ldiff.j2
Normal file
1187
roles/ldap-replica/templates/schema.ldiff.j2
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1 +0,0 @@
|
|||
Subproject commit 081384a08400e2c6c56fbb668756618e9b1b8024
|
7
roles/nginx-reverse-proxy/README.md
Normal file
7
roles/nginx-reverse-proxy/README.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Rôle du Reversed Proxy NGINX
|
||||
|
||||
Ce rôle Ansible a pour but de mettre en place un proxy inversé avec NGINX.
|
||||
|
||||
Il doit être exécuté en tant que super-utilisateur
|
||||
(option `-b` pour `--become`).
|
||||
|
7
roles/nginx-reverse-proxy/handlers/main.yml
Normal file
7
roles/nginx-reverse-proxy/handlers/main.yml
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
# Reload NGINX when a site changes
|
||||
- name: Reload NGINX service
|
||||
service:
|
||||
name: nginx
|
||||
state: reloaded
|
||||
|
33
roles/nginx-reverse-proxy/tasks/main.yml
Normal file
33
roles/nginx-reverse-proxy/tasks/main.yml
Normal file
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
# nginx is the proxy server
|
||||
- name: Install NGINX server
|
||||
apt:
|
||||
name: nginx
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
# Install sites
|
||||
- name: Configure NGINX sites
|
||||
template:
|
||||
src: nginx-sites-available.j2
|
||||
dest: /etc/nginx/sites-available/{{ item.name }}
|
||||
mode: 0644
|
||||
loop: "{{ reversed_proxy_subdomains }}"
|
||||
notify: Reload NGINX service
|
||||
|
||||
# Desactive useless nginx sites
|
||||
- name: Deactivate the default NGINX site
|
||||
file:
|
||||
path: /etc/nginx/sites-enabled/default
|
||||
state: absent
|
||||
notify: Reload NGINX service
|
||||
|
||||
# Activate sites
|
||||
- name: Activate sites
|
||||
file:
|
||||
src: /etc/nginx/sites-available/{{ item.name }}
|
||||
dest: /etc/nginx/sites-enabled/{{ item.name }}
|
||||
state: link
|
||||
loop: "{{ reversed_proxy_subdomains }}"
|
||||
notify: Reload NGINX service
|
||||
|
46
roles/nginx-reverse-proxy/templates/nginx-sites-available.j2
Normal file
46
roles/nginx-reverse-proxy/templates/nginx-sites-available.j2
Normal file
|
@ -0,0 +1,46 @@
|
|||
server {
|
||||
server_name {{ item.from }};
|
||||
include "snippets/proxy-common.conf";
|
||||
|
||||
location / {
|
||||
return 302 https://$host$request_uri;
|
||||
}
|
||||
|
||||
# On redirige tout ce qui concerne le challenge letsencrypt vers le meme dossier
|
||||
# pour pouvoir utiliser le plugin webroot de letsencrypt
|
||||
location /.well-known/acme-challenge {
|
||||
alias /usr/share/nginx/html/.well-known/acme-challenge;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
include "snippets/proxy-common-ssl.conf";
|
||||
server_name {{ item.from }};
|
||||
|
||||
# Separate log files
|
||||
access_log /var/log/nginx/{{ item.name }}.access.log;
|
||||
error_log /var/log/nginx/{{ item.name }}.error.log;
|
||||
|
||||
# Use LetsEncrypt SSL
|
||||
ssl_certificate /etc/letsencrypt/live/auro.re/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/auro.re/privkey.pem;
|
||||
ssl_trusted_certificate /etc/letsencrypt/live/auro.re/chain.pem;
|
||||
|
||||
location / {
|
||||
proxy_redirect off;
|
||||
proxy_pass http://{{ item.to }};
|
||||
proxy_set_header Host {{ item.from }};
|
||||
proxy_set_header P-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
|
||||
# "A man is not dead while his name is still spoken." -- Going Postal
|
||||
add_header X-Clacks-Overhead "GNU Terry Pratchett";
|
||||
}
|
||||
|
||||
# On redirige tout ce qui concerne le challenge letsencrypt vers le meme dossier
|
||||
# pour pouvoir utiliser le plugin webroot de letsencrypt
|
||||
location /.well-known/acme-challenge {
|
||||
alias /usr/share/nginx/html/.well-known/acme-challenge;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in a new issue