J’ai créé un rôle Ansible pour la configuration rapide d’un nouveau serveur Debian ou Ubuntu mis en place. Il est aussi utile pour la mise à jour de commandes, clé SSH, nouvel utilisateur, scripts, alias, configuration vim, etc. Ce rôle basic est disponible sur Ansible Galaxy et le projet est disponible sur github également.
Installation du rôle basic
Pour installer ce rôle de configuration sous Debian ou Ubuntu rien de plus simple :
ansible-galaxy install belgotux.basic
Pré-requis sur un host Debian
Un playbook d’initialisation playbook-init-server.yml est à exécuter seulement sur un host Debian. Pour Ubuntu si vous avez installé en y ajoutant votre clé SSH dès l’installation, vous n’aviez rien à faire. Exemple :
ansible-playbook -i inventories/prod roles/basic/playbook-init-server.yml -e 'myhost=node9 user=devops become_meth=sudo' -kK
Pré-requis pour Debian ou Ubuntu
Vous devez copier basic.aliases.example
vers basic.aliases
pour pouvoir ajouter vos propres alias, il y en a déjà certains utiles dans le fichier d’exemple.
Configuration des variables Ansible
bm
prend la valeur yes pour installer des outils pour serveur physiquessh_key_filename
clé SSH généré pour root, utile pour les accès serveur à serveur (default id_rsa)basic_list_users
liste d’utilisateur et clé SSH :name
utilisateurprimarygroup
groupe par défaut de l’utilisateurgroups
groupes de l’utilisateurpubkeys
liste de clés publiques de l’utilisateur, les fichiers dans le dossierfiles
home
home utilisateur (default/home/username
)shell
prompt utilisateur (default/bin/bash
)create_home
créer le répertoire utilisateur (defaulttrue
)append
ajouter ou remplacer les groupes (defaulttrue
to append)passwd
hash du mot de passe de l’utilisateurmkpasswd --method=sha-512
résultat du genre$6$
docker run --rm -it ulikoehler/mkpasswd
résultat en yescript$y$
pour ubuntu >22.04
generate_ssh_key
générer une paire de clé SSH (defaultfalse
)
root_public_keys
liste de clés publiques à copier depuis le dossierfiles
pour rootbash_alias_shared
activer le partage d’alias (installé dans /usr/share uniquement avec l’utilisateur root viaremote_user
oubecome
dans le playbook) (default installe seulement les alias dans le répertoire home de l’utilisateur viaremote_user
)bash_alias_dir_share
(default /usr/share)
optional
auto_upgrade
Configurer inattended-upgrades (default false)basic_packages_default
Liste des paquets commun à installerbasic_packages_extra
Liste d’autres paquets supplémentaire pour un groupe ou une machine spécifiquesstaff_directories
liste des répertoires qui peuvent être modifiés par le groupe staffbasic_custom_scripts_common
liste des scripts locaux commun à copier dans /usr/local/binbasic_custom_scripts_local
liste des scripts locaux supplémentaires à copier dans /usr/local/bin (à utiliser dans hosts)
Exemple de playbook
- hosts: [homeservers,vps]
remote_user: root
roles:
- name: basic
vars:
basic_list_users:
- name: belgotux
primarygroup: belgotux
groups: sudo,users,staff,adm
shell: "/bin/zsh"
passwd: $6$xxxx
pubkeys:
- xxx.pub
- yyy.pub
bash_alias_shared: yes
staff_directories:
- /usr/local/bin
- /usr/local/etc
auto_upgrade: true
Laisser un commentaire