Compare commits

..

26 Commits

Author SHA1 Message Date
d7115b7ffb Ajout définitif des fichiers d'Ansible pour le DokuWiki. 2024-10-14 16:46:42 +02:00
66c8cdf08e Modification expérimentale du script. 2024-10-14 16:37:40 +02:00
c06fca73e5 Ajout des playbooks pour le DokuWiki, séance Ansible. 2024-10-14 16:29:33 +02:00
ec5ced5f1e Merge pull request 'Modification du script en vue de la suppression de la seconde branche.' (#38) from test into main
Reviewed-on: #38
2024-10-11 11:57:03 +02:00
2125919329 Merge branch 'main' into test 2024-10-11 11:56:29 +02:00
62e1e0435b Modification du script en vue de la suppression de la seconde branche. 2024-10-11 11:53:08 +02:00
167dce745b Merge pull request 'Légers ajustements effectués au script d'automation.' (#37) from test into main
Reviewed-on: #37
2024-10-11 11:45:55 +02:00
6caa30b4be Merge branch 'main' into test 2024-10-11 11:45:45 +02:00
3b392f1f69 Légers ajustements effectués au script d'automation. 2024-10-11 11:44:53 +02:00
1fb8100c32 Merge pull request 'Ajout de fichiers de TP d'Ansible.' (#36) from test into main
Reviewed-on: #36
2024-10-11 11:42:27 +02:00
367408b5fe Merge branch 'main' into test 2024-10-11 11:42:17 +02:00
5aa0c87fdc Merge branch 'test' of https://gitea.lyc-lecastel.fr/guillaume.emorine/siotp into test 2024-10-11 11:40:00 +02:00
c5e8cf8b5b Ajout de certains fichiers du TP Ansible (Jusqu'au proxy). 2024-10-11 11:38:18 +02:00
8a910ca493 Merge pull request 'Correction de la syntaxe Markdown dans les fichiers README.' (#35) from test into main
Reviewed-on: #35
2024-10-07 10:59:51 +02:00
676d26a64d Merge branch 'main' into test 2024-10-07 10:59:44 +02:00
0510ef607d Merge branch 'test' of https://gitea.lyc-lecastel.fr/guillaume.emorine/siotp into test 2024-10-07 10:55:52 +02:00
74bc3f71c4 Modification des README du TP ipsec car la syntaxe n'a pas fonctionné. 2024-10-07 10:55:01 +02:00
1bd5ffafa9 Merge pull request 'Ajout des fichiers de configuration et d'éléments utiles pour le TP sur le VPN ipsec.' (#34) from test into main
Reviewed-on: #34
2024-10-07 10:54:39 +02:00
f6dfa00f97 Merge branch 'main' into test 2024-10-07 10:54:31 +02:00
f921870fe6 Ajout des fichiers de configuration et d'éléments utiles pour le TP sur le VPN ipsec. 2024-10-07 10:51:39 +02:00
f8fcb95601 Merge pull request 'Ajout des fichiers Python de la séance du matin, le 3 Octobre' (#33) from test into main
Reviewed-on: #33
2024-10-03 11:34:20 +02:00
163d690e81 Merge branch 'main' into test 2024-10-03 11:34:12 +02:00
d1d177dd38 Ajout des fichiers Python de la séance du matin, le 3 Octobre 2024-10-03 11:32:14 +02:00
a6be4fc26b Merge pull request 'Ajout des fichiers du TP sur Wordpress/LAMP' (#32) from test into main
Reviewed-on: #32
2024-10-03 10:25:32 +02:00
727d25a1af Merge branch 'main' into test 2024-10-03 10:25:22 +02:00
bcbd0ae9ef Merge pull request 'Suppression de la syntaxe Markdown.' (#31) from test into main
Reviewed-on: #31
2024-09-16 17:50:06 +02:00
28 changed files with 397 additions and 49 deletions

View File

@ -11,52 +11,24 @@ export https_proxy="http://10.121.38.1:8080/"
echo "Voulez-vous récupérer les fichiers du dépôt ou effectuer un push sur le dépôt ? [1 = Pull, 2 = Push]"
read answer
echo "Quelle branche est concernée ? [1 = main, 2 = test]"
read branch
if [ $branch == 1 ] ; then
if [ $answer == 1 ] ; then
git checkout main
echo "Récupération des fichiers à jour, branche main..."
git pull -q origin main
else
git checkout main
echo "Ajout des fichiers au Gitea..."
sleep 1
git add .
echo "Commit en cours..."
sleep 1
git commit
echo "Entrez la version du tag:"
read tag
git tag $tag
echo "Push des fichiers au Gitea, branche main..."
sleep 1
git push -q origin main --tag
fi
elif [ $branch == 2 ] ; then
if [ $answer == 1 ] ; then
git checkout test
echo "Récupération des fichiers à jour dans la branche test..."
git pull -q origin test
else
git checkout test
echo "Ajout des fichiers au Gitea, branche test..."
sleep 1
git add .
echo "Commit en cours..."
sleep 1
git commit
echo "Entrez la version du tag:"
read tag
git tag $tag
echo "Push des fichiers au Gitea, branche test..."
sleep 1
git push -q origin test --tag
fi
if [ $answer == 1 ] ; then
git checkout main
echo "Récupération des fichiers à jour, branche main..."
git pull -q origin main
echo "Fichiers à jour récupérés."
else
echo "Choisissez une branche et une option valide. Veuillez relancer le script"
fi
git checkout main
echo "Ajout des fichiers au Gitea..."
sleep 1
git add .
echo "Commit en cours..."
sleep 1
git commit
git tag -l "v.*"
echo "Entrez la version du tag:"
read tag
git tag $tag
echo "Push des fichiers au Gitea, branche main..."
sleep 1
git push -q origin main --tag
fi

View File

@ -0,0 +1 @@
Dossier avec les fichiers de configuration du tunnel IPsec fait en TP, ainsi que les IPs et tables de routage.

View File

@ -0,0 +1 @@
Il faut renommer le fichier ipsec-gw1.conf en ipsec.conf et le placer dans /etc/ .

View File

@ -0,0 +1,18 @@
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:71:ec:44 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe71:ec44/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:c2:6d:0b brd ff:ff:ff:ff:ff:ff
inet 10.0.0.1/24 brd 10.0.0.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fec2:6d0b/64 scope link
valid_lft forever preferred_lft forever

View File

@ -0,0 +1,23 @@
config setup
charondebug="all"
uniqueids=yes
strictcrlpolicy=no
conn %default
conn tunnel #
left=10.0.0.1
leftsubnet=192.168.1.0/24
right=10.0.0.2
rightsubnet=192.168.2.0/24
ike=aes256-sha2_256-modp1024!
esp=aes256-sha2_256!
keyingtries=0
ikelifetime=1h
lifetime=8h
dpddelay=30
dpdtimeout=120
dpdaction=restart
authby=secret
auto=start
keyexchange=ikev2
type=tunnel

View File

@ -0,0 +1,3 @@
10.0.0.0/24 dev enp0s8 proto kernel scope link src 10.0.0.1
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.1
192.168.2.0/24 via 192.168.1.1 dev enp0s3

View File

@ -0,0 +1 @@
Il faut renommer le fichier ipsec-gw2.conf en ipsec.conf et le placer dans /etc/ .

View File

@ -0,0 +1,18 @@
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:35:ba:6d brd ff:ff:ff:ff:ff:ff
inet 192.168.2.1/24 brd 192.168.2.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe35:ba6d/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:ea:8b:77 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.2/24 brd 10.0.0.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:feea:8b77/64 scope link
valid_lft forever preferred_lft forever

View File

@ -0,0 +1,23 @@
config setup
charondebug="all"
uniqueids=yes
strictcrlpolicy=no
conn %default
conn tunnel #
left=10.0.0.2
leftsubnet=192.168.2.0/24
right=10.0.0.1
rightsubnet=192.168.1.0/24
ike=aes256-sha2_256-modp1024!
esp=aes256-sha2_256!
keyingtries=0
ikelifetime=1h
lifetime=8h
dpddelay=30
dpdtimeout=120
dpdaction=restart
authby=secret
auto=start
keyexchange=ikev2
type=tunnel

View File

@ -0,0 +1,2 @@
10.0.0.0/24 dev enp0s8 proto kernel scope link src 10.0.0.2
192.168.2.0/24 dev enp0s3 proto kernel scope link src 192.168.2.1

View File

@ -1,2 +1,2 @@
Dépôt de seconde année de SISR.
Chaque dossier porte le numéro de la séance associée.
Chaque dossier porte le nom du sujet associé.

View File

@ -0,0 +1,2 @@
Fichier hosts utilisé pour ansible lors du TP de la séance 16.
Sont inclus les fichiers idempotents .yml d'ansible que j'ai fait, ainsi que le dossier avec tous les playbooks pour le DokuWiki.

View File

@ -0,0 +1 @@
Dossier des playbooks DokuWiki.

View File

@ -0,0 +1,6 @@
[adm]
infra
[web]
web1
web2

View File

@ -0,0 +1,4 @@
- hosts: web
roles:
- web
- doku

View File

@ -0,0 +1,51 @@
- name: 1. Récupération du tar.gz du DokuWiki
get_url:
url: http://depl/store/dokuwiki-stable.tgz
dest: /tmp
- name: 2. Extraction de l'archive
unarchive:
src: /tmp/dokuwiki-stable.tgz
dest: /var/www/html
remote_src: yes
- name: 3. Status des dossiers du Wiki
stat:
path: /var/www/html/dokuwiki-2024-02-06b
register: rept_stat
- name: 4. On renomme les dossiers
command: mv /var/www/html/dokuwiki-2024-02-06b /var/www/html/doku
when: rept_stat.stat.exists
- name: 5. Changement des droits sur la racine
file:
path: /var/www/html/doku
owner: root
group: root
- name: 6. Changement des droits sur le dossier data
file:
path: /var/www/html/doku/data
owner: www-data
group: www-data
recurse: true
- name: 7. Changement des droits sur le dossier conf
file:
path: /var/www/html/doku/conf
owner: www-data
group: www-data
recurse: true
- name: 8. Changement des droits sur le dossier lib
file:
path: /var/www/html/doku/lib
owner: www-data
group: www-data
recurse: true
- name: 9. Redémarre Apache2
service:
name: apache2
state: restarted

View File

@ -0,0 +1,10 @@
- name: 1. Installe les paquets requis pour le DokuWiki
apt:
name: "{{ item }}"
state: present
with_items:
- apache2
- php
- php-mbstring
- php-gd
- php-xml

View File

@ -0,0 +1,6 @@
[adm]
infra
[web]
web1
web2

View File

@ -0,0 +1,32 @@
# squid.yml
---
- hosts: adm
vars:
- proxy_port: 8080
- proxy_mem: 128
- proxy_localnet: "192.168.0.0/24"
tasks:
- name: 1. Installe le proxy Squid sur la machine Infra.
apt:
name: squid
state: present
# Uncomment this on FIRST RUN, comment afterwards !
# - name: 2. Récupère le fichier squid.conf.
# ansible.builtin.fetch:
# src: /etc/squid/squid.conf
# dest: squid.conf.j2
# flat: yes
- name: 3. Envoie squid.conf
template:
src: squid.conf.j2
dest: /etc/squid/squid.conf
notify: Restart squid
handlers:
- name: Restart squid
service:
name: squid
state: restarted

View File

@ -0,0 +1,35 @@
# syslog-cli.yml
---
- hosts: web
tasks:
- name: 1. Installe le paquet rsyslog.
apt:
name: rsyslog
state: present
- name: 2. Ajoute la ligne pour forwarder les logs rsyslog au bon endroit.
lineinfile:
path: /etc/rsyslog.conf
line: '*.* @192.168.0.37:514'
create: yes
notify: Restart rsyslog
- name: 3. Forward les logs journald vers syslog.
replace:
path: /etc/systemd/journald.conf
regexp: '^#ForwardToSyslog=yes'
replace: 'ForwardToSyslog=yes'
notify: Restart journald
handlers:
- name: Restart rsyslog
service:
name: rsyslog
state: restarted
- name: Restart journald
service:
name: systemd-journald
state: restarted

View File

@ -0,0 +1,30 @@
# syslog.yml
---
- hosts: adm
tasks:
- name: 1. Installe le paquet rsyslog.
apt:
name: rsyslog
state: present
- name: 2. Active le module UDP sur le serveur syslog.
replace:
path: /etc/rsyslog.conf
regexp: '^#module\(load="imudp"\)'
replace: 'module(load="imudp")'
notify: Restart rsyslog
- name: 3. Active l'écoute sur le port UDP 514.
replace:
path: /etc/rsyslog.conf
regexp: '^#input\(type="imudp" port="514"\)'
replace: 'input(type="imudp" port="514")'
notify: Restart rsyslog
handlers:
- name: Restart rsyslog
service:
name: rsyslog
state: restarted

View File

@ -0,0 +1,21 @@
# playbook.yml
---
- hosts: web
tasks:
- name: 1. installe Apache
apt:
name: apache2
state: present
- name: 2. installe PHP pour Apache
apt:
name: php
state: present
- name: 3. installe php-mbstring
apt:
name: php-mbstring
state: present
- name: 4. installe index.html
copy:
src: index.html
dest: /var/www/html/index.html
mode: 0664

View File

@ -0,0 +1,2 @@
Dépôt des fichiers Python faits lors de la séance du 3 Octobre, le matin.
Le fichier users.txt est celui utilisé pour la création des comptes, pour l'exercice 4.

View File

@ -0,0 +1,26 @@
#!/usr/bin/python3
import os
import sys
def create_user(login, full_name):
try:
os.system(f'sudo useradd -m -c "{full_name}" {login}')
print(f"Utilisateur {login} créé avec succès.")
except Exception as e:
print(f"Erreur lors de la création de l'utilisateur {login}: {e}")
def main(filename):
try:
with open(filename, 'r') as file:
for line in file:
line = line.strip()
if line:
login, full_name = line.split(':')
create_user(login.strip(), full_name.strip())
except FileNotFoundError:
print(f"Le fichier {filename} n'a pas été trouvé.")
except Exception as e:
print(f"Erreur lors de la lecture du fichier {filename}: {e}")
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python creatusr.py <nom_du_fichier>")
else:
main(sys.argv[1])

View File

@ -0,0 +1,18 @@
#!/usr/bin/python3
# Demander à l'utilisateur de saisir une phrase
phrase = input("Entrez une phrase : ")
# Convertir la phrase en liste de mots
mots = phrase.split()
# Crée un dictionnaire pour stocker les occurrences des mots
occurrences = {}
# Compter les occurrences de chaque mot
for mot in mots:
if mot in occurrences:
occurrences[mot] += 1
else:
occurrences[mot] = 1
# Afficher les mots et leurs occurrences
print("Occurrences des mots :")
for mot, count in occurrences.items():
print(f"{mot} : {count}"

View File

@ -0,0 +1,6 @@
#!/usr/bin/python3
# Récupération de la valeur du rayon
rayon=int(input("Quel est le rayon du cercle ? "))
# Calcul et affichage
perim=(2*3.141592*rayon)
print("Le périmètre vaut:",perim)

View File

@ -0,0 +1,31 @@
#!/usr/bin/python3
# Les variables:
tableau=[]
i=0
avg=0
# Boucle while pour l'input et le remplissage du tableau
while i < 4:
x=int(input("Entrez un chiffre : "))
tableau.append(x)
x=0
i=i+1
# Fin de la boucle while, déclaration de variables pour la suite
mini=tableau[0]
maxi=tableau[0]
# Boucle for pour obtenir les valeurs minimales et maximales
for y in range (i):
if tableau[y] > maxi:
maxi=tableau[y]
if tableau[y] < mini:
mini=tableau[y]
avg=avg+tableau[y]
# Affichage de chaque élément du tableau
print(tableau[y])
# Calcul de la moyenne
avg=avg/i
# Affichage final
print("La plus grande valeur du tableau est: ",maxi)
print("La plus petite valeur du tableau est: ",mini)
print("La moyenne du tableau final est: ",avg)
# On aurait pu faire ça 100x plus vite, mais faut se compliquer la vie.

View File

@ -0,0 +1,5 @@
adupont:Albert Dupont
jduroy:Jeannette Duroy
gemorine:Guillaume Emorine
jpauchet:Jarod Pauchet
ngenret:Nathan Genret