stackbuilders.sb-debian-base

Avertissement : Cette bibliothèque a été dépréciée et n'est plus maintenue. Elle ne recevra plus aucune mise à jour de sécurité, fonctionnalité ou correction de bogues et est conservée ici sur GitHub à des fins d'archivage. Si vous souhaitez l'utiliser, nous vous conseillons de forker le dépôt et d'auditer le code avant utilisation. Pour plus d'informations, contactez-nous à info@stackbuilders.com.

Rôles recommandés :

Stack Builders - Base Debian

Statut de construction Ansible Galaxy

Image Debian générique pour serveurs. Cette Galaxy nécessite Ansible 2.7.0

Plateformes prises en charge

  • Debian

    • 10 (buster)
    • 9 (stretch)
  • Ubuntu

    • 18.04 (bionic)
    • 16.04 (xenial)

CHANGEMENTS IMPORTANTS :

  • Les tâches Haskell ont été supprimées de ce rôle, donc les variables install_haskell_stack et install_haskell_dependencies pour appeler les tâches d'installation de Haskell ne sont plus utilisées.

Comment utiliser ce rôle

La version actuelle utilise le contrôle de flux d'Ansible (when : foo est défini) pour exécuter des tâches pour les différentes étapes, mais elle conserve quelques balises utiles comme pour définir le nom d'hôte ou créer le répertoire de déploiement.

Tout d'abord, assurez-vous de créer le fichier requirements.yml et d'ajouter la référence à ce dépôt, comme suit :

---
- src: [email protected]:stackbuilders/sb-debian-base.git
  version: <tag, commit ou branche>
  path: external-roles

Après cela, vous devez exécuter la commande suivante :

ansible-galaxy install -r requirements.yml

Créer un playbook

Créez un fichier playbook et dans la section des rôles, définissez le groupe de tâches que vous devez exécuter. Par exemple, vous pouvez utiliser tests/site.yml ou celui ci-dessous :

# site.yml
- hosts: all
  remote_user: foo
  vars:
    sb_debian_base_admin_user_authorized_keys:
      - ssh-rsa AAAAB3NzaC1yc1E ADMIN_USER_1
      - ssh-rsa AAAAB3Nzac2Yc2e ADMIN_USER_2
    sb_debian_base_deploy_user_authorized_keys:
      - ssh-rsa AAAAB3NzaC1yc1E DEPLOY_USER_1
      - ssh-rsa AAAAB3Nzac2Yc2e DEPLOY_USER_2
  roles:
    - role: sb-debian-base
      prebootstrap: yes
    - role: sb-debian-base
      bootstrap: yes
      add_remove_keys: yes
      vars:
        sb_debian_base_deploy_user: deployer
        sb_debian_base_supplementary_packages: [ "pkg-config", "traceroute" ]
        sb_debian_base_environment_variables:
          ONE: "uno"
          TWO: "dos"

Vous pouvez également exécuter des tâches ad hoc, bien que ce ne soit pas la méthode recommandée :

ansible-playbook -l local -i hosts site.yml -k -u root -e "prebootstrap: yes"

Exécutez le playbook de cette manière :

# Image de base
ansible-playbook -l local -i hosts site.yml -k -u root

# Compte administrateur
ansible-playbook -l local -i hosts site.yml -u administrator

Les groupes de tâches suivants sont disponibles :

Préinstallation (prebootstrap)

Cette balise contient des tâches de configuration de base, telles que :

  • Ajouter un utilisateur administrateur
    • Par défaut, c'est admin sous Debian, ubuntu sous Ubuntu. Vous pouvez définir la variable {{ sb_debian_base_admin_user }}
  • Mettre à jour le cache des paquets
  • Installer le paquet sudo
  • Utiliser sudo sans mot de passe pour le groupe sudo
  • Configurer les clés SSH autorisées pour les utilisateurs administrateurs
    • Vous devez définir {{ sb_debian_base_admin_user_authorized_keys }}

Installation (bootstrap)

Cette balise contient des tâches de configuration plus avancées, telles que :

  • Interdire l'authentification par mot de passe pour les sessions SSH
  • Interdire l'accès SSH à l'utilisateur root
  • Définir le nom d'hôte
    • Vous pouvez définir {{ hostname }}
  • Définir le fuseau horaire
    • Vous pouvez définir {{ sb_debian_base_ntp_timezone }}
  • Activer NTP avec systemd-timesyncd
  • S'assurer que les données journald sont stockées de manière persistante
  • Mettre à jour tous les paquets
  • Installer des paquets de base
    • par ex. : vim, tmux, htop, atop, tree, ufw, emacs, git, curl
  • Installer des paquets supplémentaires - pas seulement sb_debian_base_extra_packages
  • Activer le pare-feu avec UFW
    • Ouvrir des ports généraux (par ex. port SSH, port HTTP ; par défaut SSH)
      • Vous pouvez définir {{ ports }}
    • Ouvrir des ports spécifiques pour des IP spécifiques
      • Vous pouvez définir {{ port_ips }}
    • Vous pouvez désactiver UFW avec sb_debian_base_firewall: no
  • Définir et mettre à jour les variables d'environnement
    • Vous devez définir {{ sb_debian_base_environment_variables }}
  • Créer un utilisateur et un groupe Unix pour l'utilisateur déployeur
    • Vous devez définir la variable {{ sb_debian_base_deploy_user }} (par ex. deployer)
    • Optionnellement définir la variable {{ sb_debian_base_deploy_user_group }} (par ex. deployer) sinon, ce sera la même que {{ sb_debian_base_deploy_user }}
  • Créer un répertoire de déploiement d'application
  • Ajouter des clés SSH pour les « clés de déploiement » de GitHub
  • Configurer les clés SSH autorisées pour l'utilisateur déployeur
    • Vous devez définir {{ sb_debian_base_deploy_user_authorized_keys }}
  • S'assurer que github.com est un hôte connu
    • Vous devez définir {{ sb_debian_base_deploy_user }}
    • Cette variable ajoute par défaut GitHub comme un hôte connu, mais il est possible de changer cela en remplaçant {{ sb_debian_base_known_hosts }}
  • Configurer la configuration globale de l'historique bash au format suivant : 285 Jeu 08 Août 2019 13:43:40 UTC une commande Voir ci-dessous pour les variables disponibles.

Définir le nom d'hôte (set-hostname)

  • Définir le nom d'hôte sur une variable spécifique à l'hôte
    • Vous devez définir {{ hostname }}

Configurer l'historique bash :

  • Activer/désactiver la configuration de l'historique sb_debian_base_bash_history: true

  • Sous sb_debian_base_bash_history_config :

    • Définir le nombre de lignes à conserver dans le tampon d'historique histsize: '5000'
    • Définir le nombre de lignes à conserver dans le fichier d'historique histfilesize: '3000'
    • Définir le format de l'heure à append avant chaque commande d'historique (voir man history pour les options complètes) histtimeformat: '%c%t'

Créer un répertoire d'application (create-app-directory)

  • Créer le répertoire de déploiement d'application
    • Lorsque {{ sb_debian_base_deploy_user }} est défini

Dépendances externes (Galaxies) incluses dans ce groupe de tâches d'installation

  • kamaln7.swapfile (Configurer le fichier d'échange)
    • Vous pouvez définir la variable {{ sb_debian_base_swap_file_size }} (par ex. 2048MB)
  • Installer unattended-upgrades pour les mises à jour de sécurité uniquement
    • Vous pouvez définir la variable {{ sb_debian_base_uu_email_alerts }} (par ex. example@example.com)

Mettre à jour les clés SSH autorisées (add-remove-keys)

  • Met à jour les clés autorisées SSH :

    • Vous devez définir la liste suivante de variables contenant les clés publiques SSH pour les utilisateurs administrateurs et déployeurs respectifs :
{{ sb_debian_base_admin_user_authorized_keys }}
{{ sb_debian_base_deploy_user_authorized_keys }}

Licence

MIT, voir le fichier LICENSE dans ce dépôt.

Informations sur l'auteur

Justin Leitgeb, Stack Builders Inc.

À propos du projet

Base image and common roles

Installer
ansible-galaxy install stackbuilders.sb-debian-base
Licence
mit
Téléchargements
14k
Propriétaire
Our team strives to push the boundaries of the software industry through quality, pragmatic custom solutions that bring the visions of our clients to life.