Ansible : Reset Password User Linux

Sebelumnya saya sempat menuliskan bagaimana cara instalasi package di multiple linux distribution (Ansible : Install Package Multiple Linux Distribution). Kali ini saya akan menuliskan bagaimana cara reset password user server-server Linux secara sekaligus menggunakan Ansible. Hal ini cukup membantu saya dalam melakukan pembaharuan password secara rutin karena saya tidak perlu login satu persatu ke setiap server Linux, cukup menjalankan ansible playbook tertentu saja pada server controller.

Pada simulasi kali ini saya menggunakan 3 server dengan IP address sebagai berikut memiliki user raihan (User yang akan di reset passwordnya)

  • Server Master Ansible (Centos 7) : 10.10.10.4/24
  • Server Target Reset Password 1 (Centos 7) : 10.10.10.5/24
  • Server Target Reset Password 2 (Centos 7) : 10.10.10.6/24

Berikut adalah langkah-langkah yang dilakukan untuk install package menggunakan ansible.

  • Instalasi ansible pada server master dengan perintah berikut (Cukup dilakukan di sisi server master saja, karena Ansible merupakan tools yang agentless atau dalam kata lain tidak membutuhkan agent di sisi server child yang hendak dikonfigurasi)
  • # yum install ansible -y
  • Edit file /etc/ansible/hosts lalu tambahkan baris berikut
  • target1 ansible_host=10.10.10.5
    target2 ansible_host=10.10.10.6
  • Dari server master, pastikan bisa SSH 6e server target 1 & 2 menggunakan user root
  • Jika server master belum memiliki SSH key maka rekan-rekan bisa generate dengan perintah berikut. Namun jika SSH key sudah ada, maka langkah ini bisa di skip
  • # ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): (enter) 
    Enter passphrase (empty for no passphrase): (enter)
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/key.
    Your public key has been saved in /root/.ssh/key.pub.
    The key fingerprint is:
    SHA256:2sz22XyFny/3ICUsxUEk6P/f4ThJf9w8yUA//SMn6pM root@mail.bawaslu.go.id
    The key's randomart image is:
    ........
  • Konfigurasi SSH less pass dari master ke akun root server target 1 & 2 dengan perintah berikut
  • # ssh-copy-id root@10.10.10.5
    # ssh-copy-id root@10.10.10.6
  • Jalankan perintah berikut untuk memastikan server ansible master bisa SSH ke target 1 & 2 menggunakan user root
  • # ansible all -m ping --user root
    target1 | SUCCESS => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
    }
    target2 | SUCCESS => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
    }
    
  • Membuat dan masuk ke direktori baru khusus ansible dengan perintah berikut. Pada bagian ini sebenarnya bebas mau dilakukan atau tidak, namun saya pribadi biasanya memisahkan file-file ansible ke dalam 1 direktori khusus supaya lebih rapih
  • # mkdir ansible
    # cd ansible
  • Membuat & edit file ansible untuk reset password server target. Ekstensi file yang digunakan adalah .yml, disini saya menggunakan nama reset-password.yml
  • Menambahkan teks berikut pada file tersebut
  • - name: Reset Password User Linux
      hosts: all
      vars_prompt:
       - name: user
         prompt: Masukan Nama User
         private: no
       - name: password
         prompt: Masukan Password Baru     
         private: yes
      tasks:
       - user:
          name: "{{ user }}"
          state: present
          password: "{{ password|password_hash('sha512') }}"
  • Save file reset-password.yml
  • Setelah membuat file konfigurasi ansible tersebut, reset password user yang ada di server-server target bisa dilakukan secara sekaligus dari server ansible master dengan perintah berikut
  • # ansible-playbook -i inventory reset-password.yml 
    Masukan Nama User: raihan
    Masukan Password Baru: (Masukan password baru untuk user tersebut)
    
    PLAY [Reset Password User Linux] *****************************
    
    TASK [Gathering Facts] ***************************************
    ok: [target1]
    ok: [target2]
    
    TASK [user] **************************************************
    changed: [target1]
    changed: [target2]
    
    PLAY RECAP ***************************************************
    target1                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    target2                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
  • Test login ke salah satu server menggunakan akun tersebut dan password barunya

Leave a Reply

Your email address will not be published. Required fields are marked *