27 lines
1.2 KiB
Markdown
27 lines
1.2 KiB
Markdown
|
::::: {.exercice}
|
|||
|
|
|||
|
Réalisez une recette `vault.yml` démarrant une instance du gestionnaire de
|
|||
|
secrets [Hashicorp Vault](https://www.vaultproject.io/), utilisant une [base de
|
|||
|
données au
|
|||
|
choix](https://www.vaultproject.io/docs/configuration/storage/index.html)
|
|||
|
(Consul, Etcd, MySQL, Cassandra, ...).
|
|||
|
|
|||
|
Au démarrage, Vault devra déjà être configuré pour parler à sa base de données,
|
|||
|
qui devra se trouver dans un conteneur isolé et non accessible d'internet. Il
|
|||
|
faudra donc établir un lien `virtual ethernet` entre les deux conteneurs ; et
|
|||
|
ne pas oublier de le configurer (automatiquement au *runtime*, grâce à un
|
|||
|
[`poststart`
|
|||
|
*hook*](https://github.com/opencontainers/runtime-spec/blob/master/config.md#posix-platform-hooks)
|
|||
|
ou bien à un conteneur issu du *package*
|
|||
|
[`ip`](https://github.com/linuxkit/linuxkit/tree/master/pkg/ip)).
|
|||
|
|
|||
|
Les permissions étant généralement très strictes, vous aurez sans doute besoin
|
|||
|
de les assouplir un peu en ajoutant des *capabilities* autorisées à vos
|
|||
|
conteneurs, sans quoi vos conteneurs risquent d'être tués prématurément.
|
|||
|
|
|||
|
En bonus, vous pouvez gérer la [persistance des
|
|||
|
données](https://github.com/linuxkit/linuxkit/blob/master/examples/swap.yml)
|
|||
|
stockées dans Vault.
|
|||
|
|
|||
|
:::::
|