Ansible Sunucuda Deployment Scripti
İş akışını hızlandırmak ve hataları minimize etmek için Ansible, özellikle sunucu yönetiminde oldukça güçlü bir araçtır. Deployment süreçlerinde Ansible kullanmak, manuel müdahaleleri azaltır, tekrarlanabilirliği sağlar ve yapılandırma hatalarını minimuma indirir. Bu nedenle, doğru yapılandırılmış bir deployment scripti, özellikle büyük projelerde zaman ve emek tasarrufu sağlar.
İlk olarak, Ansible ile deployment otomasyonunu yapılandırmak için temel adımlar şunlardır: Envanter dosyası, playbook ve görevler. Envanter dosyası, yönetilen sunucuları tanımlar. Örneğin, şu şekilde olabilir:
1234
[webservers]
192.168.1.10
192.168.1.11
Playbook ise, bu sunuculara yapılacak işlemleri tanımlar. Örneğin, bir web uygulamasını güncellemek veya yeni versiyonunu deploy etmek için şu örnek kullanılabilir:
1234567891011121314151617181920212223242526272829303132333435363738394041424344
[hr]
[list]
[*]name: Web Uygulaması Deploy
[/list]
hosts: webservers
become: yes
vars:
app_dir: /var/www/myapp
repo_url: https://github.com/kullanici/proje.git
branch: main
tasks:
[list]
[*]name: Proje dizinine git
[/list]
file:
path: "{{ app_dir }}"
state: directory
[list]
[*]name: Güncel kodu klon veya pull yap
[/list]
git:
repo: "{{ repo_url }}"
dest: "{{ app_dir }}"
version: "{{ branch }}"
force: yes
[list]
[*]name: Bağımlılıkları yükle
[/list]
npm:
path: "{{ app_dir }}"
state: present
[list]
[*]name: Uygulamayı yeniden başlat
[/list]
systemd:
name: myapp
state: restarted
enabled: yes
Burada, temel görevler; kodu güncellemek, bağımlılıkları yüklemek ve servisi yeniden başlatmak. Bu adımlar, otomasyon sayesinde her deploy işlemi sırasında tekrarlanabilir ve hatasız hale gelir.
Son olarak, deployment süreçlerine uygun ek kontroller ve hata yönetimi eklemek, scriptin güvenilirliğini artırır. Örneğin, belirli adımların başarısız olması halinde otomatik geri dönüş veya bildirim mekanizmaları entegre edilebilir.
Bu yapıyla, Ansible tabanlı deployment scriptleri, hem hız hem de güvenlik açısından büyük avantaj sağlar. Deployment otomasyonu konusunda deneyimli veya yeni başlayan biriyseniz, bu yapıyı temel alarak kendi ihtiyaçlarınıza göre uyarlamalar yapabilirsiniz.