Jenkins ile Docker entegrasyonu için SSH servisini kullanacağız. Bu işlemi gerçekleştirebilmek için Jenkins uygulamamıza ssh eklentisi yükleyip ilgili konfigurasyonları yapalım,
Sırasıyla Manage Jenkins -> Manage Plugins menülerine giriş yapalım,
Eklenti yükleyebilmek için açılan sayfa üzerinden Available menüsüne tıklayıp arama butonu üzerinden Publish Over SSH eklentisini seçip, Install without restart butonu ile kurulumu gerçekleştirelim,
Docker erişimi için docker sunucumuz üzerinde bir adet kullanıcı oluşturup, oluşturulan kullanıcıyı docker grubuna ekleyelim,
useradd ile kullanıcımızı oluşturalım, passwd kullanıcı adı ile oluşturulan kullanıcımıza parola atayalım, usermode -aG grupadı kullanıcıadı komutu ile hedef gruba belirtilen kullanıcıyı ekleyelim, id grupadı ile de grup içerisindeki üyelikleri kontrol edelim,
useradd dockeradmin
passwd dockeradmin
usermod -aG docker dockeradmin
id dockeradmin
İşlemleri gerçekleştirdikten sonra tekrardan Jenkins uygulamamızı açıp, Manage Jenkins, Configure System menüsüne giriş yapalım. Bu işlemden önce docker sunucumuz üzerinde ip addr komutu ile AWS üzerinde tanımlı olan internal ip adresimizi bir kenara not edelim konfigurasyonlarımızı sunucular arasında internal network üzerinden gerçekleştireceğiz,
Sayfanın altında bulunan SSH Servers menüsünden tanımlamalarımızı gerçekleştirebiliriz, name alanına sunucu adı, hostname alanına internal ip adresimiz, username alanına docker servislerine erişecek yeni oluşturduğumuz kullanıcımızı yazalım, User password authentication kutucuğunu seçtikten sonra password alanına kullanıcı parolamızı yazalım ve en aşağıda bulunan Test configuration butonuna tıklayalım,
Gördüldüğü üzere hata aldık çünkü ssh servisimizde kullanıcılarımızın ssh yapmasına şuan için verilmiş bir izin tanımlı değil,
vi editörü ile /etc/ssh/sshd_config dosyamızı açalım,
dosya içerisinde bulunan PasswordAuthentication alanında bulunan no yazılı alanı yes olarak değiştirip :wq komutu ile işlemlerimizi kayıt edip çıkalım,
Yapılan değişikliğin geçerli olması için ssh servisini yeniden başlatalım,
service sshd reload
komutunu kullanarak işlemi gerçekleştirebiliriz,
Jenkins üzerinde tekrardan test configuration butonu ile testimizi yaptığımızda bağlantının sağlandığını göreceğiz,
Başka bir yazımızda görüşmek üzere,