githubixx.containerd

ansible-role-containerd

Rôle Ansible pour installer containerd. containerd est un runtime de conteneur standard de l'industrie avec un accent sur la simplicité, la robustesse et la portabilité. Il est disponible en tant que démon pour Linux et Windows, et peut gérer l'ensemble du cycle de vie des conteneurs de son système hôte : transfert et stockage d'images, exécution et supervision des conteneurs, stockages et attachements réseau de bas niveau, etc.

Journal des modifications

Historique des changements :

Voir le CHANGELOG complet

Modifications récentes :

0.13.1+1.7.20

  • MISE À JOUR
    • mise à jour de containerd à v1.7.20

0.13.0+1.7.19

  • FONCTIONNALITÉ

    • ajout du support pour Ubuntu 24.04
  • MISE À JOUR

    • mise à jour de containerd à v1.7.19

Installation

  • Téléchargez directement depuis Github (changez dans le répertoire du rôle Ansible avant de cloner) : git clone https://github.com/githubixx/ansible-role-containerd.git githubixx.containerd

  • Via la commande ansible-galaxy et téléchargez directement depuis Ansible Galaxy : ansible-galaxy install role githubixx.containerd

  • Créez un fichier requirements.yml avec le contenu suivant (cela téléchargera le rôle depuis Github) et installez-le avec : ansible-galaxy role install -r requirements.yml :

---
roles:
  - name: githubixx.containerd
    src: https://github.com/githubixx/ansible-role-containerd.git
    version: 0.13.1+1.7.20

Variables du rôle

# Actuellement, seule la valeur "base" est supportée
containerd_flavor: "base"

# version de containerd à installer
containerd_version: "1.7.19"

# Répertoire où stocker les binaires "containerd"
containerd_binary_directory: "/usr/local/bin"

# Emplacement du fichier de configuration de containerd
containerd_config_directory: "/etc/containerd"

# Répertoire pour stocker l'archive
containerd_tmp_directory: "{{ lookup('env', 'TMPDIR') | default('/tmp', true) }}"

# Propriétaire/groupe des binaires "containerd". Si les variables ne sont pas définies
# le binaire résultant appartiendra à l'utilisateur actuel.
containerd_owner: "root"
containerd_group: "root"

# Spécifie les permissions des binaires "containerd"
containerd_binary_mode: "0755"

# Système d'exploitation
# Options possibles : "linux", "windows"
containerd_os: "linux"

# Architecture processeur sur laquelle "containerd" doit fonctionner.
# Autres valeurs possibles : "arm64", "arm"
containerd_arch: "amd64"

# Nom du fichier archive
containerd_archive_base: "containerd-{{ containerd_version }}-{{ containerd_os }}-{{ containerd_arch }}.tar.gz"

# L'URL de téléchargement de containerd (normalement pas besoin de changer)
containerd_url: "https://github.com/containerd/containerd/releases/download/v{{ containerd_version }}/{{ containerd_archive_base }}"

# Paramètres du service systemd de containerd
containerd_service_settings:
  "ExecStartPre": "{{ modprobe_location }} overlay"
  "ExecStart": "{{ containerd_binary_directory }}/containerd"
  "Restart": "always"
  "RestartSec": "5"
  "Type": "notify"
  "Delegate": "yes"
  "KillMode": "process"
  "OOMScoreAdjust": "-999"
  "LimitNOFILE": "1048576"
  "LimitNPROC": "infinity"
  "LimitCORE": "infinity"

# Contenu du fichier de configuration de "containerd". Les paramètres ci-dessous sont ceux qui diffèrent des paramètres par défaut de "containerd".
#
# La configuration par défaut de "containerd" peut être générée avec cette commande :
#
# containerd config default
#
# Différences par rapport à la configuration par défaut :
#
# - Le fichier de configuration contient quelques variables de rôle qui seront remplacées lors du traitement du modèle de configuration.
# - Dans 'plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options' le paramètre "SystemdCgroup" est défini sur "true" au lieu de "false". Ceci est pertinent pour Kubernetes par exemple. Voir aussi :
#   https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd-systemd)
#
containerd_config: |
  version = 2
  [plugins]
    [plugins."io.containerd.grpc.v1.cri"]
      sandbox_image = "registry.k8s.io/pause:3.8"
      [plugins."io.containerd.grpc.v1.cri".cni]
        bin_dir = "/opt/cni/bin"
        conf_dir = "/etc/cni/net.d"
      [plugins."io.containerd.grpc.v1.cri".containerd]
        [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
          [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
            runtime_type = "io.containerd.runc.v2"
            [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
              BinaryName = "/usr/local/sbin/runc"
              SystemdCgroup = true
  [stream_processors]
    [stream_processors."io.containerd.ocicrypt.decoder.v1.tar"]
      args = ["--decryption-keys-path", "{{ containerd_config_directory }}/ocicrypt/keys"]
      env = ["OCICRYPT_KEYPROVIDER_CONFIG={{ containerd_config_directory }}/ocicrypt/ocicrypt_keyprovider.conf"]
    [stream_processors."io.containerd.ocicrypt.decoder.v1.tar.gzip"]
      args = ["--decryption-keys-path", "{{ containerd_config_directory }}/ocicrypt/keys"]
      env = ["OCICRYPT_KEYPROVIDER_CONFIG={{ containerd_config_directory }}/ocicrypt/ocicrypt_keyprovider.conf"]

Dépendances

Dépendances optionnelles (par exemple, nécessaires pour Kubernetes) :

Vous pouvez bien sûr utiliser n'importe quel autre rôle runc et CNI.

Exemple de Playbook

- hosts: votre-hôte
  roles:
    - githubixx.containerd

D'autres exemples sont disponibles dans les tests Molecule.

Tests

Ce rôle dispose d'un petit environnement de test créé à l'aide de Molecule, libvirt (vagrant-libvirt) et QEMU/KVM. Veuillez consulter mon article de blog Tester des rôles Ansible avec Molecule, libvirt (vagrant-libvirt) et QEMU/KVM sur la façon de configurer. La configuration de test est ici.

Ensuite, vous pouvez exécuter molecule :

molecule converge

Cela mettra en place quelques machines virtuelles (VM) avec différents systèmes d'exploitation Linux pris en charge et installera containerd, runc et les plugins CNI (nécessaires par exemple pour Kubernetes).

Une petite étape de vérification est également incluse. Elle télécharge un conteneur nginx et l'exécute pour s'assurer que containerd est configuré correctement et capable d'exécuter des images de conteneurs :

molecule verify

Pour nettoyer, exécutez :

molecule destroy

Licence

LICENCE PUBLIQUE GÉNÉRALE GNU Version 3

Informations sur l'auteur

http://www.tauceti.blog

Installer
ansible-galaxy install githubixx.containerd
Licence
Unknown
Téléchargements
2.3k
Propriétaire
Senior System Engineer - Python, Go, Cloud, Kubernetes, Commodore, Retro, 80's ;-)