1. Ana Sayfa
  2. DevOps
  3. Jenkins File Operations Eklentisi ile Dosya İşlemleri Nasıl Yapılır?

Jenkins File Operations Eklentisi ile Dosya İşlemleri Nasıl Yapılır?

FileOps

, hem CI hem de CD süreçlerindeki operasyonel iş yüklerinin birçoğunu üzerimizden almaktadır. Bu operasyonel işlerin bir kısmı dosya kopyalama, silme, zipleme vs. gibi işlemlerden oluşmaktadır. , File Operations eklentisi ile bu işlemleri bizler için son derece kolay hale getirmektedir. File Operations eklentisi, operasyonel dosya işlemlerini job’larımıza Build adımı olarak eklememizi sağlamaktadır. Dosya işlemlerini job’ımıza yaptıracağımız zaman akla ilk olarak ‘Execute Windows Batch Command’ Build adımını kullanarak belirli Windows komutlarıyla işlemi gerçekleştirmek gelebilir. Bu şekilde de istediğiniz sonuca varabilirsiniz ancak File Operations eklentisi sayesinde ilgili Windows komutlarını aramanıza gerek kalmadan farklı sunucular arasında bile kolaylıkla dosya işlemlerinizi gerçekleştirebilirsiniz.

Ön Gereksinimler

  • File Operations Eklentisinin Kurulması

Jenkins -> Manage Jenkins -> Manage Plugins aracılığıyla File Operations eklentisini indirip Jenkins’i yeniden başlattıktan sonra eklentinin kurulumunu tamamlamış oluruz.

Resim-1

  • Jenkins Kullanıcısının İlgili Dosya İşlemleri için Yetkilendirilmesi

İlgili Dosya işlemlerini gerçekleştirebilmek için sunucumuzdaki Jenkins servisini çalıştıran kullanıcının bu işlemler için yetkili olduğundan emin olmalıyız.

Kullanımı

Jenkins job’ımızın Build kısmına File Operations adımını aşağıdaki şekilde ekleyebiliriz.

Resim-2

Gerçekleştirmek istediğimiz dosya işlemini listeden seçebiliriz.

Resim-3

Seçilen işleme göre karşımıza çıkan alanlar değişiklik gösterecektir.

Uygulanabilen Dosya İşlemleri

Aşağıdaki dosya işlemlerini, kurduğumuz eklenti sayesinde Build adımlarımızda kullanabiliriz.

  • Dosya Kopyalama (File Copy)

Include File Pattern: Kopyalama işlemine dâhil edilecek dosyalar belirtilir. (Örneğin hedef/*/final*.xml)

Exclude File Pattern: Kopyalama işlemine dâhil edilmeyecek dosyalar belirtilir. (Örneğin hedef/*/final*.xml)

Target Location: Hedef klasör belirtilir. Varsayılan dizin, ilişkili Jenkins projesinin Workspace’idir.

Resim-4

  • Dosya Silme (File Delete)

Include File Pattern: Silme işlemine dâhil edilecek dosyalar belirtilir. (Örneğin hedef/*/final*.xml)

Exclude File Pattern: Silme işlemine dâhil edilmeyecek dosyalar belirtilir. (Örneğin hedef/*/final*.xml)

Resim-5

  • Dosya Oluşturma (File Create)

File Path: Oluşturulacak dosyanın yolu ve adı belirtilir.

Text File Content: Oluşturulacak dosyanın içeriği belirtilir, gerekli yerlerde Environment Variables kullanılabilir.

Resim-6

  • Dosya İndirme (File Download)

Url: İndirilecek dosyanın Url’i belirtilir.

User Name: İndirme işlemi sırasında kullanıcı adı istenmesi durumları için belirtilir.

Password: İndirme işlemi sırasında şifre istenmesi durumları için belirtilir.

Target Location: İndirilecek dosyanın hedef klasörü belirtilir. Varsayılan dizin Workspace’dir.

Target File Name: İndirilecek dosyanın adı belirtilir.

Resim-7

  • Dosya Dönüştürme (File Transform)

Include File Pattern: Dönüştürme işlemine dâhil edilecek dosyaların yolu ve adı belirtilir. (hedef/*/final*.xml)

Exclude File Pattern: Dönüştürme işlemine dâhil edilmeyecek dosyaların yolu ve adı belirtilir. (hedef/*/final*.xml)

Resim-8

  • Dosya UnTar (File UnTar)

Tar File: UnTar işlemi yapılacak Tar dosyasının yolu ve adı belirtilir.

Is GZIP: Dosya’nın GZIP olup olmadığı belirtilir.

Target Location: UnTar işlemi yapılan dosyaların gönderileceği hedef dosya yolu belirtilir.

Resim-9

  • Dosya UnZip (File UnZip)

Zip File: UnZip işlemi yapılacak Tar dosyasının yolu ve adı belirtilir.

Is GZIP: Dosya’nın GZIP olup olmadığı belirtilir.

Target Location: UnZip işlemi yapılan dosyaların gönderileceği hedef dosya yolu belirtilir.

Resim-10

  • Klasör Oluşturma (Folder Create)

Folder Path: Oluşturulacak klasörün yolu ve adı belirtilir.

Resim-11

  • Klasör Kopyalama (Folder Copy)

Source Folder: Kopyalanacak klasör belirtilir.

Destination Folder: Kopyalanan klasör için hedef klasör yolu belirtilir.

Resim-12

  • Klasör Silme (Folder Delete)

Folder Path: Silinecek klasörün yolu ve adı belirtilir.

Resim-13

  • Dosya Birleştirme (File Join)

Source File: İçeriği kopyalanacak dosyanın yolu ve adı belirtilir.

Target File: kaynak dosyadan kopyalanan içeriğin ekleneceği dosyanın yolu ve adı belirtilir.

Resim-14

  • Dosya Özelliklerini Json’a Dönüştürme (File Properties to Json)

Source File: Özelliklerin alınacağı kaynak dosyanın yolu ve adı belirtilir.

Target File: Json verisiyle düzenlenecek ya da oluşturulacak hedef dosyanın yolu ve adı belirtilir.

Resim-15

  • Dosya Zip’leme (File Zip)

Folder Path: Zip’lenecek klasörün yolu ve adı belirtilir.

Resim-16

  • Dosya Yeniden Adlandırma (File Rename)

Source File: Yeniden adlandırılacak dosyanın yolu ve adı belirtilir.

Destination File: Yeniden adlandırılacak dosyanın hedef yolu ve yeni adı belirtilir.

Resim-17

 

  • Klasör Yeniden Adlandırma (Folder Rename)

Source File: Yeniden adlandırılacak klasörün yolu ve adı belirtilir.

Destination File: Yeniden adlandırılacak klasörün hedef yolu ve yeni adı belirtilir.

Resim-18

Dosya işlemlerini Jenkins job’ımıza Windows komutu çalıştırtarak yaptırmaktansa, projemizin Build kısmına File Operation adımı ekleyerek iş yükünü de ciddi anlamda azaltmış oluruz. Popüler CI/CD aracı Jenkins’in File Operations eklentisi sayesinde dosya işlemlerimizi bu şekilde kolaylıkla gerçekleştirebilmekteyiz.

 

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz. 

Referanslar

www.mshowto.org 

https://jenkins.io/doc/pipeline/steps/file-operations/

TAGs: Jenkins, Jenkins File Operations, , , , , , , , , ,

Yorum Yap

Yazar Hakkında

İTÜ Matematik Mühendisliği ana dalından mezun olmadan önce Bilgi İşlem Daire Başkanlığı’nda 1 sene asistan öğrencilik yaparak bilgi teknolojileri sektörüne altyapımı daha iyi hazırlama fırsatım oldu. Mezun olduktan sonra Mercedes Benz Finansal Hizmetler şirketinde Database Administrator olarak çalışmaya başladım. Paralelde İTÜ’de ikinci ana dalım olan İşletme Mühendisliği’ne devam etmekteyim. Aynı zamanda DevOps trendlerini de takip ederek kendimi DevOps Engineer olarak geliştirmekteyim.

Yorum Yap