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
bmprend la valeur yes pour installer des outils pour serveur physiquessh_key_filenameclé SSH généré pour root, utile pour les accès serveur à serveur (default id_rsa)basic_list_usersliste d’utilisateur et clé SSH :nameutilisateurprimarygroupgroupe par défaut de l’utilisateurgroupsgroupes de l’utilisateurpubkeysliste de clés publiques de l’utilisateur, les fichiers dans le dossierfileshomehome utilisateur (default/home/username)shellprompt utilisateur (default/bin/bash)create_homecréer le répertoire utilisateur (defaulttrue)appendajouter ou remplacer les groupes (defaulttrueto append)passwdhash du mot de passe de l’utilisateurmkpasswd --method=sha-512résultat du genre$6$docker run --rm -it ulikoehler/mkpasswdrésultat en yescript$y$pour ubuntu >22.04
generate_ssh_keygénérer une paire de clé SSH (defaultfalse)
root_public_keysliste de clés publiques à copier depuis le dossierfilespour rootbash_alias_sharedactiver le partage d’alias (installé dans /usr/share uniquement avec l’utilisateur root viaremote_useroubecomedans 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_upgradeConfigurer inattended-upgrades (default false)basic_packages_defaultListe des paquets commun à installerbasic_packages_extraListe d’autres paquets supplémentaire pour un groupe ou une machine spécifiquesstaff_directoriesliste des répertoires qui peuvent être modifiés par le groupe staffbasic_custom_scripts_commonliste des scripts locaux commun à copier dans /usr/local/binbasic_custom_scripts_localliste 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