AWS에서 CloudInit을 통해 기본 사용자(ubuntu)를 변경하는 방법

AWS에서 CloudInit을 통해 기본 사용자(ubuntu)를 변경하는 방법

CloudInit을 사용하여 AWS에서 인스턴스 시작을 자동화하고 있습니다. 나는 다음에서 제공되는 (희소한) 문서를 따랐습니다.http://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/annotate/head%3A/doc/examples/cloud-config.txt및 예제가 있지만 /usr/share/doc/cloud-init기본 사용자 이름(ubuntu, id:1000)을 변경하는 방법을 아직 찾지 못했습니다.

기본 우분투를 수동으로 삭제하고 사용자를 추가하는 스크립트를 만들 수 있다는 것을 알고 있지만 CloudInit가 초기 설정을 자동화하기 위해 정확하게 존재한다는 점을 고려하면 직관적이지 않은 것 같습니다.

어떤 아이디어가 있나요?

답변1

에 따르면이것, CloudInit은 기본 "ubuntu" 사용자 재정의를 포함하여 새 사용자를 생성하기 위한 사용자 지정 지시문을 지원해야 합니다. 다음 예제를 시도했지만 제대로 작동하지 못했습니다.

그러나 CloudInit은 사용자 데이터 스크립트를 지원하고 스크립트에서 거의 모든 작업을 수행할 수 있으므로 새로운 사용자 지정 지시문을 배우기보다는 표준 명령을 사용하는 것을 선호합니다.

사용자 데이터 스크립트에서 기본 사용자 이름을 "ubuntu"에서 변경하는 방법은 다음과 같습니다. 이 예에서는 원하는 대로 변경해야 하는 새 사용자 이름 "newuser"를 사용합니다.

#!/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

이 사용자 데이터 스크립트에 추가하여 인스턴스에 필요한 다른 초기화 및 구성을 수행할 수 있습니다.

업데이트: 사용자 데이터 스크립트를 사용하는 단계와 최신 버전의 Ubuntu에서 CloudInit을 사용하여 이를 수행하는 방법을 설명하는 확장된 기사를 작성했습니다.http://alestic.com/2014/01/ec2-change-사용자 이름

답변2

이것을 userdata에 넣을 수 있습니다:

#cloud-config
system_info:
  default_user:
    name: otherusername

관련 정보