Raspberry, ces micro-serveurs qui permettent de prendre de plus en plus de plaisir depuis la version 4 et ses 4 gigas de RAM. Pour un coût économique, vous pouvez vous faire plaisir et jouer les sysadmin à domicile. Un bon moyen d’apprendre quelques astuces et bonnes pratiques.
Alors certes, vous allez y passer du temps mais vous allez y prendre du plaisir. en plus pour une fois vous serrez le seul à décider de ce que vous faites et comment vous le faites.
Je vous propose donc une série dédiée à l’automatisation sur raspberry d’une petite infra web.
Les users pour commencer
Avant d’arriver sur un serveur, vous devez au moins y accéder en ssh. Mais pas question d’utiliser le user par défaut raspberry. Il est logique de se créer ses propres users et de supprimer ce user raspberry qui représente un grand risque de sécurité car présent sur tous les raspberry.
Mais on va quand même pas se palucher ça à la main ? et non ansible est là pour vous aider.
Ansible : l’automatisation
Très simplement ansible va vous permettre de mettre en place votre infrastructure de raspberry. Et rien de tel que de créer des users pour le faire.
Pour débuter notre formation, nous allons découvrir l’inventory. Il s’agit de la liste de serveurs qui peut être décrite soit en yaml ou en json. Personnellement je préfère le format yaml que l’on retrouve dans tous les autres fichiers ansible.
Et voici ce que donne mon inventory :
all: children: door: hosts: 192.168.1.31: back: hosts: 192.168.1.41: 192.168.1.42:
Notre fichier playbook va pour l’instant simplement décrire les tâches réalisées en appelant des modules.
- name: deploy users hosts: all become: yes vars: users_admin: - "xavki" users_no_admin: - "xavier" tasks: - name: create group admin group: name: "admin" state: present - name: create admin user accounts user: name: "{{ item }}" groups: "admin" with_items: - "{{ users_admin }}" - name: create standard user accounts user: name: "{{ item }}" with_items: - "{{ users_no_admin }}" - name: add authorized keys authorized_key: user: "{{ item }}" key: "{{ lookup('file', 'files/'+ item + '.key.pub') }}" with_items: - "{{ users_admin }}" - "{{ users_no_admin }}" - name: "Allow admin users to sudo without a password" lineinfile: dest: "/etc/sudoers" state: "present" regexp: "^%sudo" line: "%admin ALL=(ALL) NOPASSWD: ALL"
Source : https://gitlab.com/xavki/raspberry-tricks/-/tree/master/1-create-users