Ubuntu
Ansible
Ubuntu14.04

ansibleでsudoユーザーを追加する (ubuntu 14.04, virtualbox, AMI)

More than 3 years have passed since last update.

Packerでprovisioningにansibleを使って、docker, AMI, vagrantのimageを作成をした際にsuperuserを追加したかったのですが、ちょっとした環境の違いで色々とハマったのでその時のメモです。

Amazonが提供しているubunut AMIでは、デフォルトでadmin group/etc/sudoersにありますが、ubuntuのserver用のイメージをつかう場合は自分でgroupを作って、/etc/sudoersに追加しないといけません。state=presentになっていれば、すでに書かれていても問題なく動きます。

- vars:
    username: 'foobar'
    password: '$6$7AVE1GtWIiA$ZevelSCKTO/DS4iNbAfog0Tf03chM/kFbOafLOSOGi8lAGf79oaGDjZl1nQ6dH6JcsahrtuwbF52O7weN/JFj1'
- name: add admin group
  group: name=admin state=present

- name: add admin group to /etc/sudoers
  lineinfile: "dest=/etc/sudoers backup=yes state=present regexp='^%admin' line='%admin ALL=(ALL) ALL'"

- name: add a sudo-able user
  user: name={{ username }} password={{ password }} groups=admin state=present

パスワードに関しては平文で渡すのではなく、mkpasswdなどを使って生成したものを渡します。saltが違うため、同じパスワードでも違う文字列になることに注意してください。

mkpasswd --method=SHA-512
references