Ansible version finalisée

This commit is contained in:
“cameron.desrayaud”
2021-12-15 09:56:20 +01:00
parent d9bb729bc1
commit 9f0082b1f2
25 changed files with 99 additions and 81 deletions

9
Mission2/ansible/hosts Normal file
View File

@@ -0,0 +1,9 @@
[localhost]
localhost
[test]
tomcattest
[proxsrv]
10.121.38.65

View File

@@ -0,0 +1,10 @@
---
- name: mysql dump playbook
hosts: test
become: yes
become_method: sudo
remote_user: root
roles:
- mysql_dump

View File

@@ -0,0 +1,9 @@
---
- name: MariaDB playbook
hosts: test
become: yes
become_method: sudo
remote_user: root
roles:
- mysql

View File

@@ -0,0 +1,13 @@
---
- hosts: test
remote_user: root
become: yes
become_method: sudo
roles:
- tomcat
- mariadb
- mariadb_create_dump
- mariadb_create_usr
- mariadb_inject_dump
- openjdk

View File

@@ -0,0 +1,6 @@
---
- name: restart mariadb
service:
name: mariadb
state: restarted

View File

@@ -0,0 +1,49 @@
---
- name: "MYSQL - update cache"
apt:
update_cache: yes
- name: "MYSQL - installation"
apt:
name: mariadb-server
state: latest
- name: "PYTHON3 - installation"
apt:
name: python3-pymysql
state: latest
- name: "MYSQL - démarrage de mysql"
service:
name: "mysqld"
state: started
enabled: yes
- name: "MYSQL - creation base de données"
community.mysql.mysql_db:
name: sdis29
state: present
login_unix_socket: /var/run/mysqld/mysqld.sock
check_implicit_admin: yes
- name: "MYSQL - creation utilisateur"
mysql_user:
name: "dev"
password: "Azerty1+"
priv: "*.*:ALL"
host: "localhost"
login_unix_socket: /var/run/mysqld/mysqld.sock
- name: copie de la base de donnée
copy:
src: ~/sauvegarde/sql/sdis29-dump.sql
dest: /tmp/
- name: Importation de la base de données
mysql_db:
name: sdis29
state: import
target: /tmp/sdis29.sql
login_user: dev
login_password: Azerty1+
login_unix_socket: /var/run/mysqld/mysqld.sock

View File

@@ -0,0 +1,12 @@
mariadb_packages:
- mariadb-server
- mariadb-common
- python-mysqldb
- python-openssl
repo_software_package:
- software-properties-common
- dirmngr
- apt-transport-https
key_url: "https://mariadb.org/mariadb_release_signing_key.asc"
repo_deb: deb [arch=amd64] https://mirror.klaus-uwe.me/mariadb/repo/10.4/debian
mariadb_socket: /run/mysqld/mysqld.sock

View File

@@ -0,0 +1,4 @@
- name: Restart mysqld
ansible.builtin.service:
name: mysqld
state: restarted

View File

@@ -0,0 +1,15 @@
- name: exportation de la base de données
mysql_db:
name: sdis29
state: dump
target: /tmp/sdis29-dump.sql
login_user: dev
login_password: Azerty1+
login_unix_socket: /var/run/mysqld/mysqld.sock
- name: importation du dump de la base de donnée
ansible.builtin.fetch:
src: /tmp/sdis29-dump.sql
dest: /root/sauvegarde/sql/
flat: yes

View File

@@ -0,0 +1,14 @@
- name: copie de la base de donnée
copy:
src: sdis29.sql
dest: /tmp
- name: Importation de la base de données
mysql_db:
name: sdis29
state: import
target: /tmp/sdis29.sql
login_user: dev
login_password: Azerty1+
login_unix_socket: /var/run/mysqld/mysqld.sock

View File

@@ -0,0 +1,3 @@
---
tomcat_archive_url: https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.13/bin/apache-tomcat-10.0.13.tar.gz
tomcat_archive_dest: /tmp/apache-tomcat-{{ tomcat_ver }}.tar.gz

View File

@@ -0,0 +1,4 @@
- name: restart tomcat
service:
name: tomcat
state: restarted

View File

@@ -0,0 +1,8 @@
---
- name: Add the OS specific variables
include_vars: "{{ item }}"
with_first_found:
- "{{ ansible_distribution }}{{ ansible_distribution_major_version }}.yml"
- "{{ ansible_os_family }}.yml"
- include_tasks: "tomcat-setup-{{ ansible_os_family }}.yml"

View File

@@ -0,0 +1,85 @@
- name: S'assurer que le système utilise le port HTTPS pour APT.
stat:
path: /usr/lib/apt/methods/https
register: apt_https_transport
- name: Installation APT HTTPS transport.
apt:
name: "apt-transport-https"
state: present
update_cache: yes
when: not apt_https_transport.stat.exists
- name: Installation packages basique
package:
name: ['vim','aptitude','bash-completion','tmux','tree','htop','wget','unzip','curl','git','python']
state: present
update_cache: yes
- name: Installation Java (Debian/Ubuntu)
apt:
name: default-jdk
state: present
- name: Ajout tomcat dans un groupe
group:
name: tomcat
- name: Ajout "tomcat" au user
user:
name: tomcat
group: tomcat
home: /usr/share/tomcat
createhome: no
system: yes
- name: Installation Tomcat
get_url:
url: "https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.14/bin/apache-tomcat-10.0.14.tar.gz"
dest: "{{ tomcat_archive_dest }}"
- name: Création du répertoire tomcat
file:
path: /usr/share/tomcat
state: directory
owner: tomcat
group: tomcat
- name: Extraction archive de tomcat
unarchive:
src: "{{ tomcat_archive_dest }}"
dest: /usr/share/tomcat
owner: tomcat
group: tomcat
remote_src: yes
extra_opts: "--strip-components=1"
creates: /usr/share/tomcat/bin
- name: Copie tomcat fichier service*
template:
src: templates/tomcat.service.j2
dest: /etc/systemd/system/tomcat.service
when: ansible_service_mgr == "systemd"
- name: Démarrer et activé tomcat
service:
daemon_reload: yes
name: tomcat
state: started
enabled: yes
when: ansible_service_mgr == "systemd"
- name: Définir l'accès a l'interface utilisateur authentifié
template:
src: tomcat-users.xml.j2
dest: /usr/share/tomcat/conf/tomcat-users.xml
notify: restart tomcat
- name: Autoriser l'accès aux applications du gestionnaire et gestionnaire d'hote sur n'importe qu'elle IP
template:
src: context.xml.j2
dest: "{{ item }}"
with_items:
- /usr/share/tomcat/webapps/host-manager/META-INF/context.xml
- /usr/share/tomcat/webapps/manager/META-INF/context.xml
notify: restart tomcat

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<Context antiResourceLocking="false" privileged="true" >
</Context>

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<!--
NOTE: By default, no user is included in the "manager-gui" role required
to operate the "/manager/html" web application. If you wish to use this app,
you must define such a user - the username and password are arbitrary. It is
strongly recommended that you do NOT use one of the users in the commented out
section below since they are intended for use with the examples web
application.
-->
<!--
NOTE: The sample user and role entries below are intended for use with the
examples web application. They are wrapped in a comment and thus are ignored
when reading this file. If you wish to configure these users for use with the
examples web application, do not forget to remove the <!.. ..> that surrounds
them. You will also need to set the passwords to something appropriate.
-->
<!-- user manager can access only manager section -->
<role rolename="manager-gui" />
<user username="{{ ui_manager_user }}" password="{{ ui_manager_pass }}" roles="manager-gui" />
<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="{{ ui_admin_username }}" password="{{ ui_admin_pass }}" roles="manager-gui,admin-gui" />
</tomcat-users>

View File

@@ -0,0 +1,22 @@
[Unit]
Description=Tomcat
After=syslog.target network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=JAVA_HOME={{ JAVA_HOME }}
Environment='JAVA_OPTS=-Djava.awt.headless=true'
Environment=CATALINA_HOME=/usr/share/tomcat
Environment=CATALINA_BASE=/usr/share/tomcat
Environment=CATALINA_PID=/usr/share/tomcat/temp/tomcat.pid
ExecStart=/usr/share/tomcat/bin/catalina.sh start
ExecStop=/usr/share/tomcat/bin/catalina.sh stop
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
---
JAVA_HOME: /usr/lib/jvm/default-java

View File

@@ -0,0 +1,15 @@
---
- name: Tomcat playbook
hosts: test
become: yes
become_method: sudo
remote_user: root
vars:
tomcat_ver: 10.0.13
ui_manager_user: manager
ui_manager_pass: root
ui_admin_username: admin
ui_admin_pass: root
roles:
- tomcat