tutorial.pdf: update to the latest template
This commit is contained in:
parent
23451ed479
commit
2788600d4f
|
@ -1,16 +1,6 @@
|
|||
include ../pandoc-opts.mk
|
||||
|
||||
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
|
||||
|
|
|
@ -87,11 +87,11 @@ Lancez ensuite la commande suivante :
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
42sh$ ansible --inventory-file hosts all --module-name ping --user root --ask-pass
|
||||
192.168.0.106 | SUCCESS => {
|
||||
"changed": false,
|
||||
"ping": "pong"
|
||||
}
|
||||
42sh$ ansible --inventory-file hosts all --module-name ping --user root --ask-pass
|
||||
192.168.0.106 | SUCCESS => {
|
||||
"changed": false,
|
||||
"ping": "pong"
|
||||
}
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -115,8 +115,8 @@ Et ajoutez les options `--become` et `--ask-become-pass` (utilisez `--sudo` et
|
|||
`--ask-sudo-pass` pour les vieilles versions) :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
ansible --inventory-file hosts all -m ping -u bruce --become --ask-become-pass
|
||||
```bash
|
||||
ansible --inventory-file hosts all -m ping -u bruce --become --ask-become-pass
|
||||
```
|
||||
</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 :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
ansible -i hosts all -m setup
|
||||
```bash
|
||||
ansible -i hosts all -m setup
|
||||
```
|
||||
</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 :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
ansible-playbook -i hosts playbook.yml
|
||||
```bash
|
||||
ansible-playbook -i hosts playbook.yml
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -256,10 +256,10 @@ Pour se faire, il faut ajouter un élément `notify` à sa tâche :
|
|||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
- name: template configuration file
|
||||
template: src=template.j2 dest=/etc/httpd.conf
|
||||
notify:
|
||||
- restart cherokee
|
||||
- name: template configuration file
|
||||
template: src=template.j2 dest=/etc/httpd.conf
|
||||
notify:
|
||||
- restart cherokee
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -267,9 +267,9 @@ Puis, au même niveau que les *tasks*, on déclare nos *handlers* :
|
|||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
handlers:
|
||||
- name: restart cherokee
|
||||
service: name=cherokee state=restarted
|
||||
handlers:
|
||||
- name: restart cherokee
|
||||
service: name=cherokee state=restarted
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -305,11 +305,11 @@ récupérée par un module (comme le module `setup`).
|
|||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
all:
|
||||
hosts:
|
||||
192.168.0.106
|
||||
vars:
|
||||
ntp_server: ntp.epitech.eu
|
||||
all:
|
||||
hosts:
|
||||
192.168.0.106
|
||||
vars:
|
||||
ntp_server: ntp.epitech.eu
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -327,9 +327,9 @@ variables dans une recette :
|
|||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
- hosts: webservers
|
||||
vars:
|
||||
http_port: 80
|
||||
- hosts: webservers
|
||||
vars:
|
||||
http_port: 80
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -337,9 +337,9 @@ Ces variables peuvent être placées dans un fichier, pour plus de lisibilité :
|
|||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
- hosts: webservers
|
||||
vars_files:
|
||||
- /vars/webservers_common.yml
|
||||
- hosts: webservers
|
||||
vars_files:
|
||||
- /vars/webservers_common.yml
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -347,8 +347,8 @@ Le format correspond au sous arbre que l'on pourrait trouver sous `vars` :
|
|||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
http_port: 80
|
||||
https_port: 443
|
||||
http_port: 80
|
||||
https_port: 443
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -363,8 +363,8 @@ template, un format très courant dans le milieu du développement Python.
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
I'm running {{ ansible_system }} {{ ansible_os_family }} on {{ ansible_system_vendor }},
|
||||
with {{ ansible_memory_mb.swap.free }} MB Swap available.
|
||||
I'm running {{ ansible_system }} {{ ansible_os_family }} on {{ ansible_system_vendor }},
|
||||
with {{ ansible_memory_mb.swap.free }} MB Swap available.
|
||||
```
|
||||
</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
|
||||
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 :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
My disks are: {% for disk in ansible_device_links.uuids %}
|
||||
- {{ disk }}: {{ ansible_device_links.uuids[disk] }}, {{ ansible_device_links.ids[disk]|join(', ') }}
|
||||
{% endfor %}
|
||||
My disks are: {% for disk in ansible_device_links.uuids %}
|
||||
- {{ disk }}: {{ ansible_device_links.uuids[disk] }}, {{ ansible_device_links.ids[disk]|join(', ') }}
|
||||
{% endfor %}
|
||||
```
|
||||
</div>
|
||||
|
||||
Notez dans ce dernier exemple l'utilisation d'un filtre `join` permettant
|
||||
d'aplatir la liste retournée.
|
||||
|
@ -396,10 +400,10 @@ Jinja2 :
|
|||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
- hosts: webservers
|
||||
vars_files:
|
||||
- /vars/webservers_common.yml
|
||||
- /vars/webservers_{{ ansible_os_family }}.yml
|
||||
- hosts: webservers
|
||||
vars_files:
|
||||
- /vars/webservers_common.yml
|
||||
- /vars/webservers_{{ ansible_os_family }}.yml
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -414,13 +418,13 @@ tâches. Par exemple :
|
|||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
tasks:
|
||||
- name: "pkg setup (Debian)"
|
||||
apt: name=chrony state=present
|
||||
when: ansible_os_family == "Debian"
|
||||
- name: "pkg setup (CentOS)"
|
||||
yum: name=chrony state=present
|
||||
when: ansible_os_family == "CentOS"
|
||||
tasks:
|
||||
- name: "pkg setup (Debian)"
|
||||
apt: name=chrony state=present
|
||||
when: ansible_os_family == "Debian"
|
||||
- name: "pkg setup (CentOS)"
|
||||
yum: name=chrony state=present
|
||||
when: ansible_os_family == "CentOS"
|
||||
```
|
||||
</div>
|
||||
|
||||
|
|
|
@ -25,11 +25,11 @@ en fonction de votre organisation ou de vos choix) :
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
login_x-TP2/ttrss.yml
|
||||
login_x-TP2/vars/ttrss-config.yml
|
||||
login_x-TP2/pgdump.sh
|
||||
login_x-TP2/config.php.j2
|
||||
login_x-TP2/ttrss.nginx.conf
|
||||
login_x-TP2/ttrss.yml
|
||||
login_x-TP2/vars/ttrss-config.yml
|
||||
login_x-TP2/pgdump.sh
|
||||
login_x-TP2/config.php.j2
|
||||
login_x-TP2/ttrss.nginx.conf
|
||||
...
|
||||
```
|
||||
</div>
|
||||
|
@ -72,12 +72,12 @@ Si vous recevez un rapport avec l'erreur suivante :
|
|||
|
||||
<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: using RSA key 842807A84573CC96
|
||||
gpg: requesting key E2CCD99DD37BD32E from hkp server pool.sks-keyservers.net
|
||||
gpg: Can't check signature: No public key
|
||||
gpg: Signature made Tue Jan 01 16:42:23 2014 CET
|
||||
gpg: using RSA key 842807A84573CC96
|
||||
gpg: requesting key E2CCD99DD37BD32E from hkp server pool.sks-keyservers.net
|
||||
gpg: Can't check signature: No public key
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -94,7 +94,7 @@ Si vous recevez un rapport avec l'erreur suivante :
|
|||
|
||||
<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>
|
||||
|
||||
|
@ -109,7 +109,7 @@ Si vous recevez un rapport concluant ainsi :
|
|||
|
||||
<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>
|
||||
|
||||
|
|
|
@ -20,8 +20,8 @@ apprendre le plus de choses !) est sans doute *qemu*, sous Linux ; vous pouvez
|
|||
le lancer avec la commande :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
qemu-system-x86_64
|
||||
```bash
|
||||
qemu-system-x86_64
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -75,8 +75,8 @@ par exemple pour une carte `enp0s3`) ; avant de l'assigner à notre machine
|
|||
virtuelle :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
qemu-system-x86_64 -device pci-assign,host=03:00.0
|
||||
```bash
|
||||
qemu-system-x86_64 -device pci-assign,host=03:00.0
|
||||
```
|
||||
</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 :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
qemu-system-x86_64 -net nic,model=e1000 -net tap,ifname=tap0,script=no,downscript=no
|
||||
```bash
|
||||
qemu-system-x86_64 -net nic,model=e1000 -net tap,ifname=tap0,script=no,downscript=no
|
||||
```
|
||||
</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 :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
ip link add name br0 type bridge
|
||||
```bash
|
||||
ip link add name br0 type bridge
|
||||
```
|
||||
</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 :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
ip link set veth0 master br0
|
||||
```bash
|
||||
ip link set veth0 master br0
|
||||
```
|
||||
</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` :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
ip link show master br0
|
||||
```bash
|
||||
ip link show master br0
|
||||
```
|
||||
</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 :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
qemu-system-x86_64 -net bridge,br=br0
|
||||
```bash
|
||||
qemu-system-x86_64 -net bridge,br=br0
|
||||
```
|
||||
</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é.
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
dnsmasq --interface=br0 --bind-interfaces --dhcp-range=172.20.0.2,172.20.255.254
|
||||
```bash
|
||||
dnsmasq --interface=br0 --bind-interfaces --dhcp-range=172.20.0.2,172.20.255.254
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -220,16 +220,16 @@ Démarrer la machine virtuelle
|
|||
Pour réaliser ce TP, nous aurons besoin d'un disque vierge :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
qemu-img create -f qcow2 /tmp/disk.qcow2 4G
|
||||
```bash
|
||||
qemu-img create -f qcow2 /tmp/disk.qcow2 4G
|
||||
```
|
||||
</div>
|
||||
|
||||
Ce disque sera à attacher à notre machine virtuelle de cette manière :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
qemu-system-x86_64 -drive file=/tmp/disk.qcow2
|
||||
```bash
|
||||
qemu-system-x86_64 -drive file=/tmp/disk.qcow2
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -240,8 +240,8 @@ Tout comme le disque, nous utilisons ici le paramètre `-drive` pour donner un
|
|||
ISO de CD :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
qemu-system-x86_64 -boot d -drive format=raw,media=cdrom,readonly,file=tuto2.iso
|
||||
```bash
|
||||
qemu-system-x86_64 -boot d -drive format=raw,media=cdrom,readonly,file=tuto2.iso
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -284,8 +284,8 @@ pouvoir émettre un paquet sur le réseau.
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
42sh$ ip link
|
||||
1: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
|
||||
42sh$ ip link
|
||||
1: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
|
||||
^^^^^^^^^^
|
||||
```
|
||||
</div>
|
||||
|
@ -293,8 +293,8 @@ pouvoir émettre un paquet sur le réseau.
|
|||
Manuellement, l'état d'un lien se change avec la commande :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
ip link set enp3s0 up
|
||||
```bash
|
||||
ip link set enp3s0 up
|
||||
```
|
||||
</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 :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
ip address add 192.168.0.42/24 dev enp3s0
|
||||
```bash
|
||||
ip address add 192.168.0.42/24 dev enp3s0
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -319,9 +319,9 @@ réseau : le routeur conduisant généralement à Internet.
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
42sh$ ip route
|
||||
default via 192.168.0.254 dev enp3s0
|
||||
192.168.0.0/24 dev enp3s0 proto kernel scope link src 192.168.0.42
|
||||
42sh$ ip route
|
||||
default via 192.168.0.254 dev enp3s0
|
||||
192.168.0.0/24 dev enp3s0 proto kernel scope link src 192.168.0.42
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -333,8 +333,8 @@ paquet détaillant ses routes.
|
|||
Manuellement, on ajoute une route par défaut avec la commande :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
ip route add default via 192.168.0.254
|
||||
```bash
|
||||
ip route add default via 192.168.0.254
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -352,7 +352,7 @@ fichier `/etc/resolv.conf` :
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
nameserver 9.9.9.9
|
||||
nameserver 9.9.9.9
|
||||
```
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
---
|
||||
title: Administration Linux avancée -- TP n^o^ 2
|
||||
subtitle:
|
||||
author: Pierre-Olivier *nemunaire* Mercier
|
||||
subtitle: fixit_f to the rescue
|
||||
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
||||
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
|
||||
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
|
||||
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
|
||||
caractéristiques.
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
# <fs> <mountpoint> <type> <opts> <dump/pass>
|
||||
/dev/sda1 / ext4 defaults 0 1
|
||||
/dev/sda2 none swap swap 0 0
|
||||
none /tmp tmpfs defaults,nosuid,nodev,noexec 0 0
|
||||
```
|
||||
</div>
|
||||
|
||||
Notons que le montage des partitions est effectué par le système
|
||||
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
|
||||
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
|
||||
|
||||
|
|
|
@ -1,6 +1,24 @@
|
|||
% Decent marging...
|
||||
\usepackage[cm]{fullpage}
|
||||
|
||||
\addto\captionsfrench{
|
||||
\renewcommand{\contentsname}
|
||||
{Sommaire}
|
||||
}
|
||||
% Indentation for all paragraph (even the first one) + ventilate
|
||||
\usepackage{indentfirst}
|
||||
\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
|
||||
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
|
||||
|
|
|
@ -1,23 +1,22 @@
|
|||
---
|
||||
title: Administration Linux avancée -- TP n^o^ 3
|
||||
subtitle:
|
||||
author: Pierre-Olivier *Nemunaire* Mercier
|
||||
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
||||
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
|
||||
|
|
|
@ -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 New Issue