Ansible ile Yeni Kullanıcı Hesapları ve SSH Erişimi Tanımlama
1. Senaryo Tanımı
Sistem yöneticisi olarak, birden fazla Linux sunucusunda aynı kullanıcı hesabını oluşturmak, bu kullanıcı için SSH anahtarı tanımlamak ve gerekiyorsa sudo yetkisi vermek istiyoruz. Bu işlemleri manuel yapmak yerine Ansible playbook’u kullanarak otomatik hale getireceğiz.
2. Ön Hazırlıklar
– Ansible kontrol nodunda SSH bağlantısı yapılabilir olmalı.
– Hedef sunucuların envanteri `inventory.ini` dosyasına yazılmalı.
– Ansible yüklü olmalı: `sudo apt install ansible` veya `sudo yum install ansible`
3. Playbook ile Kullanıcı Oluşturma
Aşağıdaki örnek playbook, yeni bir kullanıcıyı oluşturur ve SSH anahtarını ekler:
—
– name: Yeni kullanıcı oluştur ve SSH anahtarını ekle
hosts: all
become: true
vars:
users:
– username: devuser
pubkey: “ssh-rsa AAAAB3…kullanıcının_public_keyi”
tasks:
– name: Kullanıcı oluştur
user:
name: “{{ item.username }}”
state: present
shell: /bin/bash
create_home: yes
loop: “{{ users }}”
– name: SSH klasörü oluştur
file:
path: “/home/{{ item.username }}/.ssh”
state: directory
owner: “{{ item.username }}”
group: “{{ item.username }}”
mode: ‘0700’
loop: “{{ users }}”
– name: Yetkili anahtar ekle
copy:
content: “{{ item.pubkey }}”
dest: “/home/{{ item.username }}/.ssh/authorized_keys”
owner: “{{ item.username }}”
group: “{{ item.username }}”
mode: ‘0600’
loop: “{{ users }}”
4. sudo Yetkisi Verme
Kullanıcıya şifresiz sudo yetkisi vermek için aşağıdaki görevi ekleyebilirsiniz:
– name: sudo yetkisi ver
lineinfile:
path: /etc/sudoers.d/{{ item.username }}
state: present
create: yes
line: “{{ item.username }} ALL=(ALL) NOPASSWD:ALL”
mode: ‘0440’
loop: “{{ users }}”
5. Playbook’u Çalıştırmak
Playbook dosyasını örneğin `user_setup.yml` olarak kaydedin ve aşağıdaki komutla çalıştırın:
ansible-playbook -i inventory.ini user_setup.yml
6. Sonuç ve Test
– Hedef makinelerde kullanıcı oluştu mu?
– SSH ile giriş yapabiliyor musunuz?
– sudo yetkisi beklendiği gibi mi?
Bu adımlar başarıyla gerçekleştiyse, yapılandırmanız tamamlanmıştır.
7. Ek Notlar
– Birden fazla kullanıcıyı aynı anda oluşturabilirsiniz.
– Ansible Vault ile private key gibi hassas bilgileri şifreleyebilirsiniz.
– Tüm kullanıcı değişkenlerini ayrı bir `vars/users.yml` dosyasında tanımlayarak yapıyı modülerleştirebilirsiniz.

