ansible + goss
This commit is contained in:
		
							
								
								
									
										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 | ||||
		Reference in New Issue
	
	Block a user