Beberapa distribusi linux memiliki adduser command, atau default nya perintah useradd untuk menambah user pada sistem. adduser command akan menambah user baru dan dapat login ke home direktori nya. useradd membutuhkan beberapa tambahan untuk itu. Untuk itu menggunakan ansible untuk membuat user lebih mudah dibandingkan menggunakan command adduser atau useradd.
Menambah User
Struktur direktory yang akan kita buat seperti di bawah ini:
[root@coba user]# tree . |-- create_users.yml |-- delete_users.yml |-- hosts |-- pub_keys | |-- land2.pub | |-- land3.pub | `-- land.pub `-- vars |-- deleteusers.yml `-- users.yml 2 directories, 8 files
Inventory hosts nya seperti ini:
[root@coba user]# cat /etc/ansible/hosts [all] 172.0.2.46
Buat file user.yml yang isinya adalah list user yang akan kita create:
[root@coba user]# cat create_users.yml --- - hosts: all user: nostra become: yes tasks: - include_vars: users.yml - name: Add users | create users, shell, home dirs user: name={{ item.username }} shell=/bin/bash createhome=yes comment='create with ansible' with_items: '{{users}}' - name: Setup | authorized key upload authorized_key: user={{ item.username }} key="{{ lookup('file', 'pub_keys/{{ item.username }}.pub') }}" with_items: '{{users}}' - name: Add user to sudo group shell: usermod -aG wheel {{item.username}} when: 'item.use_sudo == True' with_items: '{{users}}'
Pada vars/users.yml tambahkan user mana saya yang memiliki akses sudo.
[root@coba user]# cat vars/users.yml --- users: - username: land use_sudo: yes - username: land2 use_sudo: no - username: land3 use_sudo: no
Tambahkan public key user di folder pub_keys:
[root@coba user]# cat pub_keys/land.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCm2wey+RyM81ZWgyEU7npsEUq0NQmtNjIMGPzxPQfxidHkzkMOp0xTyBFJFb95CwQMYxEQz5gzDv5TWZjT0u/1yxfck8pPgotNpPzGbgVTEDmuN/P5SgEhF1gpotYimRomMsMiAf6NEyV5VqUk+dS+F1xbwsdbwwfGle4eI1QeaLXSCnlb9xwDuDcFe+nz0X7m8dnzYtglEIkXPfbXlJUDtxQCBSgVDMnHukJABAwCNdbZgxnr/ZL7zjSOTkQxB2zSQR6+aY01oVj39A4kdw4x/xsoZ5zjeAC5/viYimfLppF1vCLlPLSCIQrsp0D6ym5Em6Xq1huHkLozfjutsdD7 land@macs-MacBook-Air-3.local
Run ansible create user dengan command:
[root@coba user]# ansible-playbook -i /etc/ansible/hosts create_users.yml --key-file "/home/nostra/id_rsa" PLAY [all] ******************************************************************************************************************************************************************************************************************************************************************* TASK [Gathering Facts] ******************************************************************************************************************************************************************************************************************************************************* ok: [172.0.2.46] TASK [include_vars] ********************************************************************************************************************************************************************************************************************************************************** ok: [172.0.2.46] TASK [Add users | create users, shell, home dirs] **************************************************************************************************************************************************************************************************************************** changed: [172.0.2.46] => (item={u'username': u'land', u'use_sudo': True}) changed: [172.0.2.46] => (item={u'username': u'land2', u'use_sudo': False}) changed: [172.0.2.46] => (item={u'username': u'land3', u'use_sudo': False}) TASK [Setup | authorized key upload] ***************************************************************************************************************************************************************************************************************************************** changed: [172.0.2.46] => (item={u'username': u'land', u'use_sudo': True}) changed: [172.0.2.46] => (item={u'username': u'land2', u'use_sudo': False}) changed: [172.0.2.46] => (item={u'username': u'land3', u'use_sudo': False}) TASK [Add user to sudo group] ************************************************************************************************************************************************************************************************************************************************ changed: [172.0.2.46] => (item={u'username': u'land', u'use_sudo': True}) skipping: [172.0.2.46] => (item={u'username': u'land2', u'use_sudo': False}) skipping: [172.0.2.46] => (item={u'username': u'land3', u'use_sudo': False}) PLAY RECAP ******************************************************************************************************************************************************************************************************************************************************************* 172.0.2.46 : ok=5 changed=3 unreachable=0 failed=0
Menghapus User
Buat file delete_users.yml dan isi seperti di bawah ini:
[root@coba user]# cat delete_users.yml --- - hosts: all user: nostra become: yes tasks: - include_vars: deleteusers.yml - name: Deleting The users user: name={{ item.username }} state=absent remove=yes with_items: '{{users}}'
Buat file untuk list user yang akan di delete pada vars/deleteusers.yml
[root@coba user]# cat vars/deleteusers.yml --- users: - username: land3 - username: land2 - username: land
Run ansible untuk mendelete user:
[root@coba user]# ansible-playbook -i /etc/ansible/hosts delete_users.yml --key-file "/home/nostra/id_rsa" PLAY [all] ******************************************************************************************************************************************************************************************************************************************************************* TASK [Gathering Facts] ******************************************************************************************************************************************************************************************************************************************************* ok: [172.0.2.46] TASK [include_vars] ********************************************************************************************************************************************************************************************************************************************************** ok: [172.0.2.46] TASK [Deleting The users] **************************************************************************************************************************************************************************************************************************************************** changed: [172.0.2.46] => (item={u'username': u'land3'}) changed: [172.0.2.46] => (item={u'username': u'land2'}) changed: [172.0.2.46] => (item={u'username': u'land'}) PLAY RECAP ******************************************************************************************************************************************************************************************************************************************************************* 172.0.2.46 : ok=3 changed=1 unreachable=0 failed=0
Masih banyak lagi fungsi dari penggunaan ansible playbook ini. Sekian tutorial dari saya, semoga bermanfaat :)
No comments:
Post a Comment