Question Comment changer d'utilisateur par défaut (Ubuntu) via CloudInit sur AWS


J'utilise CloudInit pour automatiser le démarrage de mes instances sur AWS. J'ai suivi la documentation (rare) disponible sur http://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/annotate/head%3A/doc/examples/cloud-config.txt et des exemples sur /usr/share/doc/cloud-init, mais vous n'avez toujours pas trouvé comment changer le nom d'utilisateur par défaut (ubuntu, id: 1000).

Je sais que je peux créer un script pour supprimer manuellement l'ubuntu par défaut et ajouter mon utilisateur, mais cela semble aller à l'encontre de l'intuitivité étant donné que CloudInit existe exactement pour automatiser la configuration initiale.

Des idées?


5
2017-10-21 02:00


origine


Construirez-vous votre propre AMI ou tenterez-vous d'utiliser un AMI public? - Skaperen
Avez-vous fait référence à ce document: help.ubuntu.com/community/CloudInit - Skaperen
@ Skaperen: J'utilise le système public AMI Ubuntu 12.04.1. Oui, j'ai vu la documentation CloudInit sur ubuntu.com, mais ils ne mentionnent rien sur le changement d'utilisateur par défaut. - Gui Ambros


Réponses:


Selon ce, CloudInit devrait prendre en charge les directives personnalisées pour créer de nouveaux utilisateurs, y compris le remplacement de l'utilisateur par défaut "ubuntu". Je l'ai essayé en suivant des exemples, mais je n'ai pas réussi à le faire fonctionner.

Cependant, étant donné que CloudInit prend en charge les scripts de données utilisateur et que vous pouvez pratiquement tout faire dans un script, je préfère utiliser des commandes standard plutôt que d'essayer d'apprendre de nouvelles directives personnalisées.

Voici comment je modifie le nom d'utilisateur par défaut de "Ubuntu" dans un script de données utilisateur. Cet exemple utilise le nouveau nom d'utilisateur "newuser" que vous devez modifier selon vos préférences:

#!/bin/bash -ex
user=newuser
usermod  -l $user ubuntu
groupmod -n $user ubuntu
usermod  -d /home/$user -m $user
mv /etc/sudoers.d/90-cloudimg-ubuntu /etc/sudoers.d/90-cloudimg-$user
perl -pi -e "s/ubuntu/$user/g;" /etc/sudoers.d/90-cloudimg-$user

Vous pouvez ajouter à ce script de données utilisateur pour effectuer toute autre initialisation et configuration nécessaire sur vos instances.

Mise à jour: j'ai rédigé un article détaillé décrivant les étapes à suivre pour utiliser un script de données utilisateur et comment le faire avec CloudInit sur les versions récentes d'Ubuntu: http://alestic.com/2014/01/ec2-change-username


2
2017-10-21 21:25



Merci @ Eric, c'est exactement ce que je cherchais. Et vous avez raison, plus j'en apprends sur CloudInit, plus je réalise qu'il est préférable d'utiliser un script shell standard pour tout personnaliser, plutôt que de s'appuyer sur une nouvelle syntaxe non standard de CloudInit. - Gui Ambros
Je suis d'accord avec le sentiment de la coquille. Une autre astuce, en plus de faire les choses de la manière la plus simple possible, faites tout ce que vous pouvez pour minimiser le nombre d'actions consignées au cours de cloud-init. Laissez les tâches lourdes à un CM à part entière et faites en sorte que la ligne entre les deux soit aussi claire que possible. - dmourati