ansible + goss
This commit is contained in:
parent
3c8d12a40f
commit
b85cfcdf7e
10
ansible/main.yml
Normal file
10
ansible/main.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
- hosts: localhost
|
||||||
|
connection: local
|
||||||
|
become: yes
|
||||||
|
become_method: sudo
|
||||||
|
become_user: root
|
||||||
|
roles:
|
||||||
|
- doku
|
||||||
|
- mysql
|
||||||
|
- adminer
|
||||||
|
- ssl-apache
|
24
ansible/roles/adminer/tasks/main.yml
Normal file
24
ansible/roles/adminer/tasks/main.yml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
- name: installation php
|
||||||
|
apt:
|
||||||
|
name: php-mysql
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: installation adminer
|
||||||
|
get_url:
|
||||||
|
url: http://www.adminer.org/latest.php
|
||||||
|
dest: /var/www/html/adminer.php
|
||||||
|
|
||||||
|
- name: droit 755
|
||||||
|
file:
|
||||||
|
path: /var/www/html/adminer
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
recurse: yes
|
||||||
|
|
||||||
|
- name: droit adminer
|
||||||
|
file:
|
||||||
|
path: /var/www/html/adminer
|
||||||
|
state: directory
|
||||||
|
owner: www-data
|
||||||
|
group: www-data
|
||||||
|
recurse: yes
|
1
ansible/roles/doku/defaults/main.yml
Normal file
1
ansible/roles/doku/defaults/main.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
doku: "dokuwiki-2020-07-29"
|
83
ansible/roles/doku/tasks/main.yml
Normal file
83
ansible/roles/doku/tasks/main.yml
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
- name: installation apache2
|
||||||
|
apt:
|
||||||
|
name: apache2
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: installation php
|
||||||
|
apt:
|
||||||
|
name: php
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: installation php-mbstring
|
||||||
|
apt:
|
||||||
|
name: php-mbstring
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: installation php-gd
|
||||||
|
apt:
|
||||||
|
name: php-gd
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: installation php-xml
|
||||||
|
apt:
|
||||||
|
name: php7.4-xml
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: recuperation dokuwiki-stable.tgz depuis machine depl
|
||||||
|
get_url:
|
||||||
|
url: http://depl.sio.lan/store/dokuwiki-stable.tgz
|
||||||
|
dest: /tmp
|
||||||
|
|
||||||
|
- name: Extraction archive
|
||||||
|
unarchive:
|
||||||
|
src: /tmp/dokuwiki-stable.tgz
|
||||||
|
dest: /var/www/html/
|
||||||
|
remote_src: yes
|
||||||
|
|
||||||
|
- name: stat rept
|
||||||
|
stat:
|
||||||
|
path: /var/www/html/{{ doku }}
|
||||||
|
register: rept_stat
|
||||||
|
|
||||||
|
- name: Renommage de dokuwiki-stable
|
||||||
|
command: mv /var/www/html/{{ doku }} /var/www/html/doku
|
||||||
|
when: rept_stat.stat.exists
|
||||||
|
|
||||||
|
- name: Droit root recursive
|
||||||
|
file:
|
||||||
|
path: /var/www/html/doku
|
||||||
|
state: directory
|
||||||
|
recurse: yes
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
- name: droit 755
|
||||||
|
file:
|
||||||
|
path: /var/www/html/doku
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
recurse: yes
|
||||||
|
|
||||||
|
- name: droit apache data
|
||||||
|
file:
|
||||||
|
path: /var/www/html/doku/data
|
||||||
|
state: directory
|
||||||
|
owner: www-data
|
||||||
|
group: www-data
|
||||||
|
recurse: yes
|
||||||
|
|
||||||
|
- name: droit apache lib
|
||||||
|
file:
|
||||||
|
path: /var/www/html/doku/lib
|
||||||
|
state: directory
|
||||||
|
owner: www-data
|
||||||
|
group: www-data
|
||||||
|
recurse: yes
|
||||||
|
|
||||||
|
- name: droit apache conf
|
||||||
|
file:
|
||||||
|
path: /var/www/html/doku/conf
|
||||||
|
state: directory
|
||||||
|
owner: www-data
|
||||||
|
group: www-data
|
||||||
|
recurse: yes
|
4
ansible/roles/mysql/handlers/main.yml
Normal file
4
ansible/roles/mysql/handlers/main.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
- name: Restart MySQL
|
||||||
|
service:
|
||||||
|
name: mysqld
|
||||||
|
state: restarted
|
35
ansible/roles/mysql/tasks/main.yml
Normal file
35
ansible/roles/mysql/tasks/main.yml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
- name: "[MYSQL] - update cache"
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: "[MYSQL] - install"
|
||||||
|
apt:
|
||||||
|
name: mariadb-server
|
||||||
|
state: latest
|
||||||
|
|
||||||
|
- name: "[Python] - install"
|
||||||
|
apt:
|
||||||
|
name: python3-pymysql
|
||||||
|
state: latest
|
||||||
|
|
||||||
|
- name: "[MYSQL] - Démarrage MySQL"
|
||||||
|
service:
|
||||||
|
name: "mysqld"
|
||||||
|
state: started
|
||||||
|
enabled: yes
|
||||||
|
|
||||||
|
- name: "[MYSQL] - Création de la base de données"
|
||||||
|
mysql_db:
|
||||||
|
name: bdarbre
|
||||||
|
check_implicit_admin: yes
|
||||||
|
login_unix_socket: /var/run/mysqld/mysqld.sock
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Creation de l'utilisateur mysql avec tous les privliges
|
||||||
|
mysql_user:
|
||||||
|
name: ap43
|
||||||
|
password: Azerty1+
|
||||||
|
priv: "*.*:ALL,GRANT"
|
||||||
|
login_unix_socket: /var/run/mysqld/mysqld.sock
|
||||||
|
state: present
|
||||||
|
notify: Restart MySQL
|
32
ansible/roles/ssl-apache/files/000-default.conf
Normal file
32
ansible/roles/ssl-apache/files/000-default.conf
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<VirtualHost *:80>
|
||||||
|
# The ServerName directive sets the request scheme, hostname and port that
|
||||||
|
# the server uses to identify itself. This is used when creating
|
||||||
|
# redirection URLs. In the context of virtual hosts, the ServerName
|
||||||
|
# specifies what hostname must appear in the request's Host: header to
|
||||||
|
# match this virtual host. For the default virtual host (this file) this
|
||||||
|
# value is not decisive as it is used as a last resort host regardless.
|
||||||
|
# However, you must set it for any further virtual host explicitly.
|
||||||
|
#ServerName www.example.com
|
||||||
|
ServerName onfarbo43
|
||||||
|
ServerAdmin webmaster@localhost
|
||||||
|
DocumentRoot /var/www/html
|
||||||
|
|
||||||
|
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
|
||||||
|
# error, crit, alert, emerg.
|
||||||
|
# It is also possible to configure the loglevel for particular
|
||||||
|
# modules, e.g.
|
||||||
|
#LogLevel info ssl:warn
|
||||||
|
|
||||||
|
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||||
|
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||||
|
|
||||||
|
# For most configuration files from conf-available/, which are
|
||||||
|
# enabled or disabled at a global level, it is possible to
|
||||||
|
# include a line for only one particular virtual host. For example the
|
||||||
|
# following line enables the CGI configuration for this host only
|
||||||
|
# after it has been globally disabled with "a2disconf".
|
||||||
|
#Include conf-available/serve-cgi-bin.conf
|
||||||
|
Redirect "/" "https://onfarbo43/"
|
||||||
|
</VirtualHost>
|
||||||
|
|
||||||
|
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
|
24
ansible/roles/ssl-apache/files/default-ssl.conf
Normal file
24
ansible/roles/ssl-apache/files/default-ssl.conf
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#<IfModule mod_ssl.c>
|
||||||
|
<VirtualHost *:443>
|
||||||
|
ServerAdmin webmaster@localhost
|
||||||
|
ServerName onfarbo43
|
||||||
|
|
||||||
|
DocumentRoot /var/www/html
|
||||||
|
|
||||||
|
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||||
|
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||||
|
|
||||||
|
SSLEngine on
|
||||||
|
|
||||||
|
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
|
||||||
|
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
|
||||||
|
|
||||||
|
<FilesMatch "\.(cgi|shtml|phtml|php)$">
|
||||||
|
SSLOptions +StdEnvVars
|
||||||
|
</FilesMatch>
|
||||||
|
<Directory /usr/lib/cgi-bin>
|
||||||
|
SSLOptions +StdEnvVars
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
</VirtualHost>
|
||||||
|
#</IfModule>
|
16
ansible/roles/ssl-apache/files/ports.conf
Normal file
16
ansible/roles/ssl-apache/files/ports.conf
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# If you just change the port or add more ports here, you will likely also
|
||||||
|
# have to change the VirtualHost statement in
|
||||||
|
# /etc/apache2/sites-enabled/000-default.conf
|
||||||
|
|
||||||
|
Listen 80
|
||||||
|
Listen 443 https
|
||||||
|
|
||||||
|
#<IfModule ssl_module>
|
||||||
|
# Listen 443
|
||||||
|
#</IfModule>
|
||||||
|
|
||||||
|
<IfModule mod_gnutls.c>
|
||||||
|
Listen 443
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
|
9
ansible/roles/ssl-apache/handlers/main.yml
Normal file
9
ansible/roles/ssl-apache/handlers/main.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
- name: restart apache2
|
||||||
|
service:
|
||||||
|
name: apache2
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
- name: reload apache2
|
||||||
|
service:
|
||||||
|
name: apache2
|
||||||
|
state: reloaded
|
63
ansible/roles/ssl-apache/tasks/main.yml
Normal file
63
ansible/roles/ssl-apache/tasks/main.yml
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
- name: Installation des paquets
|
||||||
|
apt:
|
||||||
|
name: ['openssl', 'sudo']
|
||||||
|
|
||||||
|
- name: Création de la clé
|
||||||
|
community.crypto.openssl_privatekey:
|
||||||
|
path: /etc/ssl/private/apache-selfsigned.key
|
||||||
|
mode: "640"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
- name: Création du certificat
|
||||||
|
community.crypto.x509_certificate:
|
||||||
|
path: /etc/ssl/certs/apache-selfsigned.crt
|
||||||
|
privatekey_path: /etc/ssl/private/apache-selfsigned.key
|
||||||
|
provider: selfsigned
|
||||||
|
mode: "644"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
- name: Suppression du fichier 000-default.conf
|
||||||
|
file:
|
||||||
|
path: /etc/apache2/sites-available/000-default.conf
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Supression du fichier default-ssl.conf
|
||||||
|
file:
|
||||||
|
path: /etc/apache2/sites-available/default-ssl.conf
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Supression du fichier ports.conf
|
||||||
|
file:
|
||||||
|
path: /etc/apache2/ports.conf
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: ajout de la redirection https
|
||||||
|
copy:
|
||||||
|
src: 000-default.conf
|
||||||
|
dest: /etc/apache2/sites-available
|
||||||
|
|
||||||
|
- name: ajout du site https
|
||||||
|
copy:
|
||||||
|
src: default-ssl.conf
|
||||||
|
dest: /etc/apache2/sites-available
|
||||||
|
|
||||||
|
- name: ajout du port 443
|
||||||
|
copy:
|
||||||
|
src: ports.conf
|
||||||
|
dest: /etc/apache2
|
||||||
|
notify: restart apache2
|
||||||
|
|
||||||
|
- name: changement de répertoire
|
||||||
|
shell: cd /etc/apache2/sites-available
|
||||||
|
|
||||||
|
- name: a2ensite default
|
||||||
|
command: sudo a2ensite 000-default.conf
|
||||||
|
|
||||||
|
- name: a2ensite ssl
|
||||||
|
command: sudo a2ensite default-ssl.conf
|
||||||
|
|
||||||
|
- name: a2enmod
|
||||||
|
command: sudo a2enmod ssl
|
||||||
|
notify: reload apache2
|
31
goss/goss.yaml
Normal file
31
goss/goss.yaml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
service:
|
||||||
|
mysql:
|
||||||
|
enabled: true
|
||||||
|
running: true
|
||||||
|
ssh:
|
||||||
|
enabled: true
|
||||||
|
running: true
|
||||||
|
user:
|
||||||
|
mysql:
|
||||||
|
exists: true
|
||||||
|
uid: 106
|
||||||
|
gid: 113
|
||||||
|
groups:
|
||||||
|
- mysql
|
||||||
|
home: /nonexistent
|
||||||
|
shell: /bin/false
|
||||||
|
group:
|
||||||
|
mysql:
|
||||||
|
exists: true
|
||||||
|
gid: 113
|
||||||
|
ssh:
|
||||||
|
exists: true
|
||||||
|
gid: 111
|
||||||
|
command:
|
||||||
|
curl -k -s http://onfarbo43/doku|grep onfarbo43:
|
||||||
|
exit-status: 0
|
||||||
|
stdout:
|
||||||
|
- <p>The document has moved <a href="https://onfarbo43/doku">here</a>.</p>
|
||||||
|
- <address>Apache/2.4.52 (Debian) Server at onfarbo43 Port 80</address>
|
||||||
|
stderr: []
|
||||||
|
timeout: 10000
|
Loading…
x
Reference in New Issue
Block a user