Basic TravisCI Information

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Erişim

TravisCI, Github, Bitbucket, Assembla ve Gitlab gibi farklı git platformlarıyla doğrudan entegre olur. Kullanıcıdan, TravisCI'nin TravisCI ile entegre olmak istediği depolara erişim izni vermesi istenir.

Örneğin, Github'da aşağıdaki izinleri isteyecektir:

  • user:email (salt okunur)

  • read:org (salt okunur)

  • repo: Kamu ve özel depolar ve organizasyonlar için kod, taahhüt durumları, işbirlikçiler ve dağıtım durumlarına salt okunur ve yazma erişimi sağlar.

Şifrelenmiş Sırlar

Ortam Değişkenleri

TravisCI'da diğer CI platformlarında olduğu gibi, repo düzeyinde kaydedilen şifreleri şifreli olarak kaydedip, derleme işlemini gerçekleştiren makinenin çevresel değişkenine çözümlenip göndermek mümkündür.

Şifrelerin hangi dallarda kullanılabilir olacağı (varsayılan olarak tümü) ve TravisCI'nin değerini günlüklerde gösterip göstermemesi gerektiği de belirtilebilir (varsayılan olarak göstermez).

Özel Şifrelenmiş Sırlar

Her bir repo için TravisCI, bir RSA çifti oluşturur, özel olanı saklar ve depoya erişimi olanlara depodaki genel anahtarı sunar.

Bir repo'nun genel anahtarına aşağıdaki komutla erişebilirsiniz:

travis pubkey -r <owner>/<repo_name>
travis pubkey -r carlospolop/t-ci-test

Ardından, bu yapıyı kullanarak sırları şifreleyebilir ve .travis.yaml dosyanıza ekleyebilirsiniz. Sırlar, derleme çalıştırıldığında çözümlenir ve çevresel değişkenlerde erişilebilir hale gelir.

Bu şekilde şifrelenen sırların, ayarların çevresel değişkenlerinde listelenmeyeceğini unutmayın.

Özel Şifrelenmiş Dosyalar

Önceki gibi, TravisCI ayrıca dosyaları şifrelemeye ve ardından derleme sırasında çözümlemeye izin verir:

travis encrypt-file super_secret.txt -r carlospolop/t-ci-test

encrypting super_secret.txt for carlospolop/t-ci-test
storing result as super_secret.txt.enc
storing secure env variables for decryption

Please add the following to your build script (before_install stage in your .travis.yml, for instance):

openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d

Pro Tip: You can add it automatically by running with --add.

Make sure to add super_secret.txt.enc to the git repository.
Make sure not to add super_secret.txt to the git repository.
Commit all changes to your .travis.yml.

Şifreleme yapılırken, repo içinde aşağıdaki gibi 2 Çevresel Değişken yapılandırılır:

TravisCI Enterprise

Travis CI Enterprise, Travis CI'nin yerinde bir sürümü olup, altyapınıza dağıtabileceğiniz bir sürümdür. Travis CI'nin 'sunucu' sürümünü düşünün. Travis CI kullanarak, istediğiniz gibi yapılandırabileceğiniz ve güvence altına alabileceğiniz kolay kullanımlı bir Sürekli Entegrasyon/Sürekli Dağıtım (CI/CD) sistemini etkinleştirebilirsiniz.

Travis CI Enterprise, iki ana bölümden oluşur:

  1. TCI hizmetleri (veya TCI Çekirdek Hizmetleri), sürüm kontrol sistemleriyle entegrasyon, derlemeleri yetkilendirme, derleme işlerini zamanlama vb. görevlerden sorumludur.

  2. TCI Çalışanı ve derleme ortamı görüntüleri (aynı zamanda OS görüntüleri olarak da adlandırılır).

TCI Çekirdek hizmetleri aşağıdakileri gerektirir:

  1. Bir PostgreSQL11 (veya daha yeni) veritabanı.

  2. Bir Kubernetes kümesi dağıtmak için bir altyapı; gerektiğinde bir sunucu kümesinde veya tek bir makinede dağıtılabilir.

  3. Kurulumunu ve yapılandırmasını kendi yapmak isteyebileceğiniz bazı bileşenleri dağıtmak ve yapılandırmak isteyebilirsiniz, örneğin RabbitMQ - daha fazla ayrıntı için Travis CI Enterprise Kurulumu sayfasına bakın.

TCI Çalışanı aşağıdakileri gerektirir:

  1. Çalışan ve bağlantılı bir derleme görüntüsü içeren bir docker görüntüsünün dağıtılabileceği bir altyapı.

  2. Belirli Travis CI Çekirdek Hizmetleri bileşenlerine bağlantı - daha fazla ayrıntı için Çalışanın Kurulumu sayfasına bakın.

Dağıtılan TCI Çalışanı ve derleme ortamı OS görüntülerinin miktarı, altyapınızdaki Travis CI Enterprise dağıtımının toplam eşzamanlı kapasitesini belirleyecektir.

AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert) öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated