tutorial.pdf: update to the latest template

This commit is contained in:
nemunaire 2019-03-10 21:58:40 +01:00
parent 23451ed479
commit 2788600d4f
10 changed files with 183 additions and 160 deletions

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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{---}

View File

@ -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

View File

@ -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

16
tutorial/pandoc-opts.mk Normal file
View 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