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