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
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
etinstall_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 }}
- Par défaut, c'est
- 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
- Ouvrir des ports généraux (par ex. port SSH, port HTTP ; par défaut SSH)
- 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'
- Définir le nombre de lignes à conserver dans le tampon d'historique
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.
ansible-galaxy install stackbuilders.sb-debian-base