4.6 KiB
Temel TravisCI Bilgisi
{{#include ../../banners/hacktricks-training.md}}
Erişim
TravisCI, Github, Bitbucket, Assembla ve Gitlab gibi farklı git platformlarıyla doğrudan entegre olur. Kullanıcıdan, TravisCI ile entegre etmek istediği reposuna erişim izni vermesi istenir.
Örneğin, Github'da aşağıdaki izinler istenir:
user:email(salt okunur)read:org(salt okunur)repo: Kamu ve özel depolar ve organizasyonlar için kod, commit durumları, işbirlikçileri ve dağıtım durumlarına okuma ve yazma erişimi verir.
Şifreli Gizli Bilgiler
Ortam Değişkenleri
TravisCI'da, diğer CI platformlarında olduğu gibi, repo düzeyinde gizli bilgileri kaydetmek mümkündür; bu bilgiler şifreli olarak kaydedilir ve şifrelenmiş olarak, build'i gerçekleştiren makinenin ortam değişkenine itilir.
Gizli bilgilerin hangi dallarda mevcut olacağını belirtmek mümkündür (varsayılan olarak hepsi) ve ayrıca TravisCI'nın değerini gizleyip gizlememesi gerektiği (varsayılan olarak gizleyecektir) belirtilebilir.
Özel Şifreli Gizli Bilgiler
Her repo için TravisCI bir RSA anahtar çifti oluşturur, özel olanı saklar ve reposuna erişimi olanlara depo için açık anahtarı sunar.
Bir reposunun açık anahtarına erişmek için:
travis pubkey -r <owner>/<repo_name>
travis pubkey -r carlospolop/t-ci-test
Sonra, bu ayarı gizli anahtarları şifrelemek ve bunları .travis.yaml dosyanıza eklemek için kullanabilirsiniz. Gizli anahtarlar derleme çalıştırıldığında çözülür ve çevresel değişkenlerde erişilebilir hale gelir.
Bu şekilde şifrelenen gizli anahtarların ayarların çevresel değişkenlerinde listelenmeyeceğini unutmayın.
Özel Şifreli Dosyalar
Önceki gibi, TravisCI ayrıca dosyaları şifrelemeye ve ardından derleme sırasında çözmeye de 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.
Not edin ki bir dosyayı şifrelerken, repoda 2 Env Değişkeni yapılandırılacaktır:
TravisCI Enterprise
Travis CI Enterprise, Travis CI'nin yerel versiyonudur, bunu altyapınızda dağıtabilirsiniz. Travis CI'nin 'sunucu' versiyonu olarak düşünün. Travis CI kullanmak, istediğiniz gibi yapılandırıp güvence altına alabileceğiniz bir ortamda kullanımı kolay bir Sürekli Entegrasyon/Sürekli Dağıtım (CI/CD) sistemini etkinleştirmenizi sağlar.
Travis CI Enterprise iki ana bölümden oluşur:
- TCI hizmetleri (veya TCI Temel Hizmetleri), sürüm kontrol sistemleriyle entegrasyondan, derlemeleri yetkilendirmeden, derleme işlerini planlamaktan vb. sorumludur.
- TCI Worker ve derleme ortamı görüntüleri (aynı zamanda OS görüntüleri olarak da adlandırılır).
TCI Temel hizmetleri aşağıdakileri gerektirir:
- Bir PostgreSQL11 (veya daha yeni) veritabanı.
- Bir Kubernetes kümesini dağıtmak için bir altyapı; gerekirse bir sunucu kümesinde veya tek bir makinede dağıtılabilir.
- Kurulumunuza bağlı olarak, bazı bileşenleri kendi başınıza dağıtmak ve yapılandırmak isteyebilirsiniz, örneğin, RabbitMQ - daha fazla ayrıntı için Travis CI Enterprise'ı Kurma sayfasına bakın.
TCI Worker aşağıdakileri gerektirir:
- Worker ve bağlantılı bir derleme görüntüsünü içeren bir docker görüntüsünün dağıtılabileceği bir altyapı.
- Belirli Travis CI Temel Hizmetleri bileşenlerine bağlantı - daha fazla ayrıntı için Worker'ı Kurma sayfasına bakın.
Dağıtılan TCI Worker ve derleme ortamı OS görüntülerinin sayısı, altyapınızdaki Travis CI Enterprise dağıtımının toplam eşzamanlı kapasitesini belirleyecektir.
{{#include ../../banners/hacktricks-training.md}}
.png)
.png)
.png)
.png)