tutorial.pdf: update to the latest template
This commit is contained in:
parent
23451ed479
commit
2788600d4f
10 changed files with 183 additions and 160 deletions
|
@ -1,16 +1,6 @@
|
||||||
|
include ../pandoc-opts.mk
|
||||||
|
|
||||||
SOURCES = tutorial.md setup.md what.md ansible.md deploiement-svc.md rendu.md
|
SOURCES = tutorial.md setup.md what.md ansible.md deploiement-svc.md rendu.md
|
||||||
PANDOCOPTS = --latex-engine=xelatex \
|
|
||||||
--standalone \
|
|
||||||
--normalize \
|
|
||||||
--number-sections \
|
|
||||||
--smart \
|
|
||||||
-M lang=fr-FR \
|
|
||||||
-M fontsize=12pt \
|
|
||||||
-M papersize=a4paper \
|
|
||||||
-M mainfont="Linux Libertine O" \
|
|
||||||
-M monofont="FantasqueSansMono-Regular" \
|
|
||||||
-M sansfont="Linux Biolinum O" \
|
|
||||||
--include-in-header=../header.tex
|
|
||||||
|
|
||||||
|
|
||||||
all: tutorial.pdf
|
all: tutorial.pdf
|
||||||
|
|
|
@ -87,11 +87,11 @@ Lancez ensuite la commande suivante :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
42sh$ ansible --inventory-file hosts all --module-name ping --user root --ask-pass
|
42sh$ ansible --inventory-file hosts all --module-name ping --user root --ask-pass
|
||||||
192.168.0.106 | SUCCESS => {
|
192.168.0.106 | SUCCESS => {
|
||||||
"changed": false,
|
"changed": false,
|
||||||
"ping": "pong"
|
"ping": "pong"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -115,8 +115,8 @@ Et ajoutez les options `--become` et `--ask-become-pass` (utilisez `--sudo` et
|
||||||
`--ask-sudo-pass` pour les vieilles versions) :
|
`--ask-sudo-pass` pour les vieilles versions) :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
ansible --inventory-file hosts all -m ping -u bruce --become --ask-become-pass
|
ansible --inventory-file hosts all -m ping -u bruce --become --ask-become-pass
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -147,8 +147,8 @@ Parmi les modules de base, le module `setup` permet de récupérer un grand
|
||||||
nombre de caractéristiques de la machine distance, voyez plutôt :
|
nombre de caractéristiques de la machine distance, voyez plutôt :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
ansible -i hosts all -m setup
|
ansible -i hosts all -m setup
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -205,8 +205,8 @@ Placer le contenu dans un fichier YAML, par exemple `playbook.yml`, non loin du
|
||||||
fichier `hosts` créé à la section précédentes, puis lancez :
|
fichier `hosts` créé à la section précédentes, puis lancez :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
ansible-playbook -i hosts playbook.yml
|
ansible-playbook -i hosts playbook.yml
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -256,10 +256,10 @@ Pour se faire, il faut ajouter un élément `notify` à sa tâche :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```yaml
|
```yaml
|
||||||
- name: template configuration file
|
- name: template configuration file
|
||||||
template: src=template.j2 dest=/etc/httpd.conf
|
template: src=template.j2 dest=/etc/httpd.conf
|
||||||
notify:
|
notify:
|
||||||
- restart cherokee
|
- restart cherokee
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -267,9 +267,9 @@ Puis, au même niveau que les *tasks*, on déclare nos *handlers* :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```yaml
|
```yaml
|
||||||
handlers:
|
handlers:
|
||||||
- name: restart cherokee
|
- name: restart cherokee
|
||||||
service: name=cherokee state=restarted
|
service: name=cherokee state=restarted
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -305,11 +305,11 @@ récupérée par un module (comme le module `setup`).
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```yaml
|
```yaml
|
||||||
all:
|
all:
|
||||||
hosts:
|
hosts:
|
||||||
192.168.0.106
|
192.168.0.106
|
||||||
vars:
|
vars:
|
||||||
ntp_server: ntp.epitech.eu
|
ntp_server: ntp.epitech.eu
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -327,9 +327,9 @@ variables dans une recette :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```yaml
|
```yaml
|
||||||
- hosts: webservers
|
- hosts: webservers
|
||||||
vars:
|
vars:
|
||||||
http_port: 80
|
http_port: 80
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -337,9 +337,9 @@ Ces variables peuvent être placées dans un fichier, pour plus de lisibilité :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```yaml
|
```yaml
|
||||||
- hosts: webservers
|
- hosts: webservers
|
||||||
vars_files:
|
vars_files:
|
||||||
- /vars/webservers_common.yml
|
- /vars/webservers_common.yml
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -347,8 +347,8 @@ Le format correspond au sous arbre que l'on pourrait trouver sous `vars` :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```yaml
|
```yaml
|
||||||
http_port: 80
|
http_port: 80
|
||||||
https_port: 443
|
https_port: 443
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -363,8 +363,8 @@ template, un format très courant dans le milieu du développement Python.
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
I'm running {{ ansible_system }} {{ ansible_os_family }} on {{ ansible_system_vendor }},
|
I'm running {{ ansible_system }} {{ ansible_os_family }} on {{ ansible_system_vendor }},
|
||||||
with {{ ansible_memory_mb.swap.free }} MB Swap available.
|
with {{ ansible_memory_mb.swap.free }} MB Swap available.
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -374,17 +374,21 @@ table de hash/dictionnaire, on utilise le caractère `.` ;
|
||||||
Les crochets `[x]` sont utilisés principalement pour accéder aux éléments des
|
Les crochets `[x]` sont utilisés principalement pour accéder aux éléments des
|
||||||
tableaux :
|
tableaux :
|
||||||
|
|
||||||
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
My first nameserver is: {{ ansible_dns.nameservers[0] }}.
|
My first nameserver is: {{ ansible_dns.nameservers[0] }}.
|
||||||
```
|
```
|
||||||
|
</div>
|
||||||
|
|
||||||
ou d'un dictionnaire lorsque la clef doit être récupérée d'une variable :
|
ou d'un dictionnaire lorsque la clef doit être récupérée d'une variable :
|
||||||
|
|
||||||
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
My disks are: {% for disk in ansible_device_links.uuids %}
|
My disks are: {% for disk in ansible_device_links.uuids %}
|
||||||
- {{ disk }}: {{ ansible_device_links.uuids[disk] }}, {{ ansible_device_links.ids[disk]|join(', ') }}
|
- {{ disk }}: {{ ansible_device_links.uuids[disk] }}, {{ ansible_device_links.ids[disk]|join(', ') }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
```
|
```
|
||||||
|
</div>
|
||||||
|
|
||||||
Notez dans ce dernier exemple l'utilisation d'un filtre `join` permettant
|
Notez dans ce dernier exemple l'utilisation d'un filtre `join` permettant
|
||||||
d'aplatir la liste retournée.
|
d'aplatir la liste retournée.
|
||||||
|
@ -396,10 +400,10 @@ Jinja2 :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```yaml
|
```yaml
|
||||||
- hosts: webservers
|
- hosts: webservers
|
||||||
vars_files:
|
vars_files:
|
||||||
- /vars/webservers_common.yml
|
- /vars/webservers_common.yml
|
||||||
- /vars/webservers_{{ ansible_os_family }}.yml
|
- /vars/webservers_{{ ansible_os_family }}.yml
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -414,13 +418,13 @@ tâches. Par exemple :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```yaml
|
```yaml
|
||||||
tasks:
|
tasks:
|
||||||
- name: "pkg setup (Debian)"
|
- name: "pkg setup (Debian)"
|
||||||
apt: name=chrony state=present
|
apt: name=chrony state=present
|
||||||
when: ansible_os_family == "Debian"
|
when: ansible_os_family == "Debian"
|
||||||
- name: "pkg setup (CentOS)"
|
- name: "pkg setup (CentOS)"
|
||||||
yum: name=chrony state=present
|
yum: name=chrony state=present
|
||||||
when: ansible_os_family == "CentOS"
|
when: ansible_os_family == "CentOS"
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -25,11 +25,11 @@ en fonction de votre organisation ou de vos choix) :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
login_x-TP2/ttrss.yml
|
login_x-TP2/ttrss.yml
|
||||||
login_x-TP2/vars/ttrss-config.yml
|
login_x-TP2/vars/ttrss-config.yml
|
||||||
login_x-TP2/pgdump.sh
|
login_x-TP2/pgdump.sh
|
||||||
login_x-TP2/config.php.j2
|
login_x-TP2/config.php.j2
|
||||||
login_x-TP2/ttrss.nginx.conf
|
login_x-TP2/ttrss.nginx.conf
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
@ -72,12 +72,12 @@ Si vous recevez un rapport avec l'erreur suivante :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
[FAIL] Bad signature. Here is the gnupg output:
|
[FAIL] Bad signature. Here is the gnupg output:
|
||||||
|
|
||||||
gpg: Signature made Tue Jan 01 16:42:23 2014 CET
|
gpg: Signature made Tue Jan 01 16:42:23 2014 CET
|
||||||
gpg: using RSA key 842807A84573CC96
|
gpg: using RSA key 842807A84573CC96
|
||||||
gpg: requesting key E2CCD99DD37BD32E from hkp server pool.sks-keyservers.net
|
gpg: requesting key E2CCD99DD37BD32E from hkp server pool.sks-keyservers.net
|
||||||
gpg: Can't check signature: No public key
|
gpg: Can't check signature: No public key
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ Si vous recevez un rapport avec l'erreur suivante :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
[FAIL] The username of your key is not explicit, I can't find you.
|
[FAIL] The username of your key is not explicit, I can't find you.
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ Si vous recevez un rapport concluant ainsi :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
After analyzing your e-mail, I've decided to SKIP it.
|
After analyzing your e-mail, I've decided to SKIP it.
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,8 @@ apprendre le plus de choses !) est sans doute *qemu*, sous Linux ; vous pouvez
|
||||||
le lancer avec la commande :
|
le lancer avec la commande :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
qemu-system-x86_64
|
qemu-system-x86_64
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -75,8 +75,8 @@ par exemple pour une carte `enp0s3`) ; avant de l'assigner à notre machine
|
||||||
virtuelle :
|
virtuelle :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
qemu-system-x86_64 -device pci-assign,host=03:00.0
|
qemu-system-x86_64 -device pci-assign,host=03:00.0
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -97,8 +97,8 @@ Pour attacher une carte réseau à notre machine virtuelle et créer l'interface
|
||||||
correspondante sur l'hôte, ce sera grâce à la commande :
|
correspondante sur l'hôte, ce sera grâce à la commande :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
qemu-system-x86_64 -net nic,model=e1000 -net tap,ifname=tap0,script=no,downscript=no
|
qemu-system-x86_64 -net nic,model=e1000 -net tap,ifname=tap0,script=no,downscript=no
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -137,8 +137,8 @@ interfaces (qu'elles soient physiques ou virtuelles).
|
||||||
Pour créer un nouveau pont, on utilise la commande `ip` comme suit :
|
Pour créer un nouveau pont, on utilise la commande `ip` comme suit :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
ip link add name br0 type bridge
|
ip link add name br0 type bridge
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -148,8 +148,8 @@ où `br0` est le nom que l'on souhaite attribuer à l'interface.
|
||||||
Pour assigner à un pont une interface, on utilise la commande suivante :
|
Pour assigner à un pont une interface, on utilise la commande suivante :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
ip link set veth0 master br0
|
ip link set veth0 master br0
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -160,8 +160,8 @@ où `veth0` est le nom de l'interface que l'on souhaite inclure dans le pont
|
||||||
Pour consulter la liste des interfaces concentrées par le pont `br0` :
|
Pour consulter la liste des interfaces concentrées par le pont `br0` :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
ip link show master br0
|
ip link show master br0
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -182,8 +182,8 @@ Lorsque le pont existe, `qemu` peut créer l'interface virtuelle et l'assigner
|
||||||
un pont directement, avec la commande :
|
un pont directement, avec la commande :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
qemu-system-x86_64 -net bridge,br=br0
|
qemu-system-x86_64 -net bridge,br=br0
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -203,8 +203,8 @@ lancé sur l'hôte et pourront donc communiquer entre-elles et avec l'hôte, sur
|
||||||
un réseau privé.
|
un réseau privé.
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
dnsmasq --interface=br0 --bind-interfaces --dhcp-range=172.20.0.2,172.20.255.254
|
dnsmasq --interface=br0 --bind-interfaces --dhcp-range=172.20.0.2,172.20.255.254
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -220,16 +220,16 @@ Démarrer la machine virtuelle
|
||||||
Pour réaliser ce TP, nous aurons besoin d'un disque vierge :
|
Pour réaliser ce TP, nous aurons besoin d'un disque vierge :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
qemu-img create -f qcow2 /tmp/disk.qcow2 4G
|
qemu-img create -f qcow2 /tmp/disk.qcow2 4G
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Ce disque sera à attacher à notre machine virtuelle de cette manière :
|
Ce disque sera à attacher à notre machine virtuelle de cette manière :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
qemu-system-x86_64 -drive file=/tmp/disk.qcow2
|
qemu-system-x86_64 -drive file=/tmp/disk.qcow2
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -240,8 +240,8 @@ Tout comme le disque, nous utilisons ici le paramètre `-drive` pour donner un
|
||||||
ISO de CD :
|
ISO de CD :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
qemu-system-x86_64 -boot d -drive format=raw,media=cdrom,readonly,file=tuto2.iso
|
qemu-system-x86_64 -boot d -drive format=raw,media=cdrom,readonly,file=tuto2.iso
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -284,8 +284,8 @@ pouvoir émettre un paquet sur le réseau.
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
42sh$ ip link
|
42sh$ ip link
|
||||||
1: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
|
1: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
|
||||||
^^^^^^^^^^
|
^^^^^^^^^^
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
@ -293,8 +293,8 @@ pouvoir émettre un paquet sur le réseau.
|
||||||
Manuellement, l'état d'un lien se change avec la commande :
|
Manuellement, l'état d'un lien se change avec la commande :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
ip link set enp3s0 up
|
ip link set enp3s0 up
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -305,8 +305,8 @@ Après avoir reçu la validation (paquet `DHCPACK`) du serveur DHCP, l'IP est
|
||||||
définie sur l'interface, via une méthode similaire à la commande :
|
définie sur l'interface, via une méthode similaire à la commande :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
ip address add 192.168.0.42/24 dev enp3s0
|
ip address add 192.168.0.42/24 dev enp3s0
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -319,9 +319,9 @@ réseau : le routeur conduisant généralement à Internet.
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
42sh$ ip route
|
42sh$ ip route
|
||||||
default via 192.168.0.254 dev enp3s0
|
default via 192.168.0.254 dev enp3s0
|
||||||
192.168.0.0/24 dev enp3s0 proto kernel scope link src 192.168.0.42
|
192.168.0.0/24 dev enp3s0 proto kernel scope link src 192.168.0.42
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -333,8 +333,8 @@ paquet détaillant ses routes.
|
||||||
Manuellement, on ajoute une route par défaut avec la commande :
|
Manuellement, on ajoute une route par défaut avec la commande :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```bash
|
||||||
ip route add default via 192.168.0.254
|
ip route add default via 192.168.0.254
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -352,7 +352,7 @@ fichier `/etc/resolv.conf` :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
nameserver 9.9.9.9
|
nameserver 9.9.9.9
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
title: Administration Linux avancée -- TP n^o^ 2
|
title: Administration Linux avancée -- TP n^o^ 2
|
||||||
subtitle:
|
subtitle: fixit_f to the rescue
|
||||||
author: Pierre-Olivier *nemunaire* Mercier
|
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
||||||
institute: EPITA
|
institute: EPITA
|
||||||
date: Mercredi 7 mars 2018
|
date: Jeudi 14 mars 2019
|
||||||
|
abstract: |
|
||||||
|
Durant ce deuxième TP, nous allons apprendre à déployer des services sur un
|
||||||
|
serveur, de manière industrielle !
|
||||||
|
|
||||||
|
\vspace{1em}
|
||||||
|
|
||||||
|
La partie 4 de ce TP est un projet à rendre à <adlin@nemunai.re> au plus tard
|
||||||
|
le **vendredi 29 mars 2019 à 00 h 42 du matin**. Consultez la dernière
|
||||||
|
section de chaque partie pour plus d'information sur les éléments à rendre.
|
||||||
|
|
||||||
|
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
||||||
|
vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
|
||||||
|
[me](https://pgp.mit.edu/pks/lookup?op=vindex&search=0x842807A84573CC96)
|
||||||
|
faire signer votre clef et n'hésitez pas à [faire signer votre
|
||||||
|
clef](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
|
||||||
...
|
...
|
||||||
|
|
||||||
Durant ce deuxième TP, nous allons apprendre à déployer des services sur un
|
|
||||||
serveur, de manière industrielle !
|
|
||||||
|
|
||||||
La partie 4 de ce TP est un projet à rendre à <adlin@nemunai.re> au plus tard
|
|
||||||
le **mercredi 21 mars 2018 à 00 h 42 du matin**. Consultez la dernière section
|
|
||||||
de chaque partie pour plus d'information sur les éléments à rendre.
|
|
||||||
|
|
||||||
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
|
||||||
vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
|
|
||||||
[me](https://pgp.mit.edu/pks/lookup?op=vindex&search=0x842807A84573CC96) faire
|
|
||||||
signer votre clef et n'hésitez pas à
|
|
||||||
[faire signer votre clef](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
|
|
||||||
|
|
||||||
\tableofcontents
|
|
||||||
|
|
|
@ -57,9 +57,11 @@ Pour éditer (ou créer ...) la table de partitions d'un disque, vous pouvez
|
||||||
utiliser les utilitaires `fdisk`, `cfdisk`, `sfdisk`, `parted`, `gdisk`. Chacun
|
utiliser les utilitaires `fdisk`, `cfdisk`, `sfdisk`, `parted`, `gdisk`. Chacun
|
||||||
de ses programmes prend en argument le disque à modifier :
|
de ses programmes prend en argument le disque à modifier :
|
||||||
|
|
||||||
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
cfdisk /dev/sda
|
cfdisk /dev/sda
|
||||||
```
|
```
|
||||||
|
</div>
|
||||||
|
|
||||||
Le TP ne se concentrant pas sur la phase de démarrage, vous pouvez ignorer les
|
Le TP ne se concentrant pas sur la phase de démarrage, vous pouvez ignorer les
|
||||||
choix de type de tables, de partitions, leurs drapeaux, les étiquettes, etc.
|
choix de type de tables, de partitions, leurs drapeaux, les étiquettes, etc.
|
||||||
|
@ -123,12 +125,14 @@ il va falloir indiquer dans le fichier `/etc/fstab` l'emplacement dans
|
||||||
l'arborescence où attacher la partition ainsi que quelques autres
|
l'arborescence où attacher la partition ainsi que quelques autres
|
||||||
caractéristiques.
|
caractéristiques.
|
||||||
|
|
||||||
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
# <fs> <mountpoint> <type> <opts> <dump/pass>
|
# <fs> <mountpoint> <type> <opts> <dump/pass>
|
||||||
/dev/sda1 / ext4 defaults 0 1
|
/dev/sda1 / ext4 defaults 0 1
|
||||||
/dev/sda2 none swap swap 0 0
|
/dev/sda2 none swap swap 0 0
|
||||||
none /tmp tmpfs defaults,nosuid,nodev,noexec 0 0
|
none /tmp tmpfs defaults,nosuid,nodev,noexec 0 0
|
||||||
```
|
```
|
||||||
|
</div>
|
||||||
|
|
||||||
Notons que le montage des partitions est effectué par le système
|
Notons que le montage des partitions est effectué par le système
|
||||||
d'initialisation (un simple appel à la commande `mount -a` ou équivalent). À
|
d'initialisation (un simple appel à la commande `mount -a` ou équivalent). À
|
||||||
|
@ -232,9 +236,11 @@ distributions). Vous pouvez également définir des conditions plus précise en
|
||||||
**Super astuce !** votre terminal rit encore de vous, affichant `Permission
|
**Super astuce !** votre terminal rit encore de vous, affichant `Permission
|
||||||
Denied` car vous avez oublié de préfixer votre commande par `sudo` ? essayez :
|
Denied` car vous avez oublié de préfixer votre commande par `sudo` ? essayez :
|
||||||
|
|
||||||
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
sudo !!
|
sudo !!
|
||||||
```
|
```
|
||||||
|
</div>
|
||||||
|
|
||||||
### Top confort dans son coquillage
|
### Top confort dans son coquillage
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,24 @@
|
||||||
|
% Decent marging...
|
||||||
\usepackage[cm]{fullpage}
|
\usepackage[cm]{fullpage}
|
||||||
|
|
||||||
\addto\captionsfrench{
|
% Indentation for all paragraph (even the first one) + ventilate
|
||||||
\renewcommand{\contentsname}
|
\usepackage{indentfirst}
|
||||||
{Sommaire}
|
\setlength{\parskip}{6pt plus 2pt minus 1pt}
|
||||||
}
|
|
||||||
|
% Avoid vertical space before/after itemize
|
||||||
|
\usepackage{enumitem}
|
||||||
|
\setlist{nosep}
|
||||||
|
|
||||||
|
% Use sans-serif font for section' titles
|
||||||
|
\usepackage{sectsty}
|
||||||
|
\allsectionsfont{\sffamily \bfseries}
|
||||||
|
|
||||||
|
% Use sans-serif font for title page
|
||||||
|
\usepackage{titling}
|
||||||
|
\renewcommand{\maketitlehooka}{\sffamily}
|
||||||
|
|
||||||
|
% Use monospaced font for URLs
|
||||||
|
\urlstyle{tt}
|
||||||
|
|
||||||
|
% In french, list item starts with dash, not bullet
|
||||||
|
\renewcommand\labelitemi{---}
|
||||||
|
|
|
@ -1,16 +1,6 @@
|
||||||
|
include ../pandoc-opts.mk
|
||||||
|
|
||||||
SOURCES = tutorial.md what.md netfilter.md wks.md rendu.md
|
SOURCES = tutorial.md what.md netfilter.md wks.md rendu.md
|
||||||
PANDOCOPTS = --latex-engine=xelatex \
|
|
||||||
--standalone \
|
|
||||||
--normalize \
|
|
||||||
--number-sections \
|
|
||||||
--smart \
|
|
||||||
-M lang=fr-FR \
|
|
||||||
-M fontsize=12pt \
|
|
||||||
-M papersize=a4paper \
|
|
||||||
-M mainfont="Linux Libertine O" \
|
|
||||||
-M monofont="FantasqueSansMono-Regular" \
|
|
||||||
-M sansfont="Linux Biolinum O" \
|
|
||||||
--include-in-header=../header.tex
|
|
||||||
|
|
||||||
|
|
||||||
all: tutorial.pdf
|
all: tutorial.pdf
|
||||||
|
|
|
@ -1,23 +1,22 @@
|
||||||
---
|
---
|
||||||
title: Administration Linux avancée -- TP n^o^ 3
|
title: Administration Linux avancée -- TP n^o^ 3
|
||||||
subtitle:
|
subtitle:
|
||||||
author: Pierre-Olivier *Nemunaire* Mercier
|
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
||||||
institute: EPITA
|
institute: EPITA
|
||||||
date: Lundi 19 mars 2018
|
date: Vendredi 29 mars 2019
|
||||||
|
abstract: |
|
||||||
|
Durant ce troisième TP, nous allons faire un peu plus de réseau !
|
||||||
|
|
||||||
|
\vspace{1em}
|
||||||
|
|
||||||
|
Tous les éléments de ce TP (exercices et projet) sont à rendre à
|
||||||
|
<adlin@nemunai.re> au plus tard le dimanche 14 avril 2019 à 23
|
||||||
|
h 42. Consultez la dernière section de chaque partie pour plus d'information
|
||||||
|
sur les éléments à rendre.
|
||||||
|
|
||||||
|
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
||||||
|
vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
|
||||||
|
[me](https://pgp.mit.edu/pks/lookup?op=vindex&search=0x842807A84573CC96)
|
||||||
|
faire signer votre clef et n'hésitez pas à [faire signer votre
|
||||||
|
clef](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
|
||||||
...
|
...
|
||||||
|
|
||||||
Durant ce troisième TP, nous allons faire un peu de réseau !
|
|
||||||
|
|
||||||
Tous les éléments de ce TP (exercices et projet) sont à rendre à
|
|
||||||
<adlin@nemunai.re> au plus tard le samedi 31 mars 2018 à 23 h 42. Consultez
|
|
||||||
la dernière section de chaque partie pour plus d'information sur les éléments à
|
|
||||||
rendre.
|
|
||||||
|
|
||||||
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
|
||||||
vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
|
|
||||||
[me](https://pgp.mit.edu/pks/lookup?op=vindex&search=0x842807A84573CC96) faire
|
|
||||||
signer votre clef et n'hésitez pas à
|
|
||||||
[faire signer votre clef](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
|
|
||||||
|
|
||||||
\hypersetup{linkcolor=black}
|
|
||||||
\tableofcontents
|
|
||||||
|
|
16
tutorial/pandoc-opts.mk
Normal file
16
tutorial/pandoc-opts.mk
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
PANDOCOPTS = --pdf-engine=xelatex \
|
||||||
|
--standalone \
|
||||||
|
--number-sections \
|
||||||
|
--toc \
|
||||||
|
-f markdown+smart \
|
||||||
|
-M fontsize=12pt \
|
||||||
|
-M papersize=a4paper \
|
||||||
|
-M mainfont="Linux Libertine O" \
|
||||||
|
-M monofont="FantasqueSansMono-Regular" \
|
||||||
|
-M sansfont="Linux Biolinum O" \
|
||||||
|
-M colorlinks=true \
|
||||||
|
-M linkcolor="black" \
|
||||||
|
-M urlcolor="ForestGreen" \
|
||||||
|
-M indent=true \
|
||||||
|
-V toc-title="Sommaire" \
|
||||||
|
--include-in-header=../../tutorial/header.tex
|
Reference in a new issue