LoginSignup
0
0

More than 3 years have passed since last update.

とりあえずLinuxユーザーを追加するだけのAnsibleスクリプト

Last updated at Posted at 2019-08-07

レガシーChefが動かなくてLinuxユーザー追加できなくて困った。
ということでAnsibleで場当たり的に解決したので備忘録。

Inventory file

hosts に ユーザーを追加するサーバーの情報と、SSHの接続設定を記載します。

hosts
[web]
xxx.xxx.xxx.xxx # ユーザーを追加したいサーバーのIP

[all:vars]
ansible_ssh_user={{ SSHするユーザー名 }}
ansible_ssh_private_key_file=~/.ssh/{{ 秘密鍵 }}

playbook

playbook.yml に実際にユーザー追加の処理を記載した playbook を作成します。今回作るユーザーはパスワード無しで sudo できるようにします。

playbook.yml
- hosts: all
  sudo: true
  vars:
    username: {{ 追加するユーザーの名前 }}
    password: {{ MD5ハッシュ化したパスワード }}
  tasks:
    - name: add a new user
      user: name={{ username }} password={{ password }} state=present

    - name: no password sudoable
      lineinfile: dest=/etc/sudoers.d/{{ username }} line="{{ username }} ALL=(ALL) NOPASSWD:ALL" create=yes owner=root group=root mode=0440

    - name: mkdir .ssh
      file: dest=/home/{{ username }}/.ssh/ state=directory owner={{ username }} group={{ username }} mode=700

    - name: add authorized keys
      file: dest=/home/{{ username }}/.ssh/authorized_keys state=touch owner={{ username }} group={{ username }} mode=600

    - name: copy publickey
      copy: src=~/.ssh/{{ 公開鍵 }} dest=/home/{{ username }}/.ssh/authorized_keys

実行

$ ansible-playbook -i hosts playbook.yml -u {{ SSHするユーザー名 }}

PLAY [all] *********************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************
ok: [xxx.xxx.xxx.xxx]

TASK [add a new user] **********************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [no password sudoable] ****************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [mkdir .ssh] **************************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [add authorized keys] *****************************************************************************************
changed: [xxx.xxx.xxx.xxx]

TASK [copy publickey] **********************************************************************************************
changed: [xxx.xxx.xxx.xxx]

PLAY RECAP *********************************************************************************************************
52.196.24.246              : ok=6    changed=5    unreachable=0    failed=0

こんな感じの結果になればきっとうまくいっているはず。最後に追加したユーザーでSSHできるか確認しましょう。

$ ssh {{ 追加されたユーザーの名前 }}@xxx.xxx.xxx.xxx

参考

おわり

🙌

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0