GitHub
Bu sayfa, GitHub erişiminin nasıl uygulandığı hakkında bilgi vermektedir.
Deployment Key Kullanımı
Github repository'lerine erişim için Deployment Key kullanılmaktadır. Deployment Key'ler özellikle uygulama sunucuları (ör. development VM, production VM) üzerinde kullanılmak üzere tasarlanmıştır. Böylece doğrudan uygulama VM'lerinizde çalışırken git pull origin main gibi komutlar sorunsuzca çalışır. Deployment Key, sadece ilgili repository'ye erişim hakkı verir ve farklı uygulamalarda ya da branchlerde kullanılmaz. Her bir repository için ayrı bir Deployment Key oluşturmalı ve bunu repository ayarlarından eklemelisiniz.
Deployment Key Ekleme Adımları
- Localde veya bastion host üzerinde yeni bir SSH anahtarı oluşturun:
ssh-keygen -t rsa -b 4096 -C "github-access" -f ~/.ssh/github-deploy-key - Oluşan
github-deploy-key.pubdosyasının içeriğini kopyalayın. - GitHub üzerinde ilgili repository'e gidin ve Settings > Deploy keys menüsüne tıklayın.
- Add deploy key butonuna tıklayın, başlık girin ve Public Key'i (dosyanın içeriğini) yapıştırın.
- Gerekirse
Allow write accessseçeneğini de işaretleyin.
GitHub Actions (CI/CD) için SSH Bağlantı Ayarları
GitHub Actions üzerinden uygulama sunucularına erişmek için bastion host üzerinden erişim sağlanmalıdır. Uygulama sunucularının SSH bağlantı ayarları aşağıdaki gibi gerçekleştirilir:
~/.ssh/config dosyası bastion host üzerinde aşağıdaki şekilde yapılandırılmalıdır. Bu yapılandırma doğrudan bastion host üzerinde gerçekleştirilmelidir, uygulama sunucularında değil.
Bastion Host için SSH config:
# dev app için (GitHub Actions VM CI/CD)
Host dev_app
HostName 10.0.6.4
User app-dev-user
IdentityFile /home/wastelog-bastion/.ssh/wastelog-bastion.pem
StrictHostKeyChecking no
# prod app için (GitHub Actions VM CI/CD)
Host prod_app
HostName 10.0.7.4
User app-prod-user
IdentityFile /home/wastelog-bastion/.ssh/wastelog-bastion.pem
StrictHostKeyChecking no
Not:
- SSH
configdosyasındaki bu düzenlemeler mutlaka bastion host üzerinde yapılmalıdır. - Uygulama sunucularında ya da başka bir yerde yapılandırma yapılmamalıdır.
Ek Bilgiler
- Dağıtımdan önce anahtarların ve izinlerin doğru şekilde yapılandırıldığından emin olun.
- Güvenlik için anahtarınızı kimseyle paylaşmayın ve sadece gereklilik halinde yeni anahtar üretin.