Basic TravisCI Information
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Το TravisCI ενσωματώνεται απευθείας με διάφορες πλατφόρμες git όπως το Github, το Bitbucket, το Assembla και το Gitlab. Θα ζητήσει από τον χρήστη να δώσει στο TravisCI άδειες για να έχει πρόσβαση στα αποθετήρια που θέλει να ενσωματώσει με το TravisCI.
Για παράδειγμα, στο Github θα ζητήσει τις εξής άδειες:
user:email
(μόνο για ανάγνωση)
read:org
(μόνο για ανάγνωση)
repo
: Παρέχει πρόσβαση για ανάγνωση και εγγραφή στον κώδικα, τις καταστάσεις commit, τους συνεργάτες και τις καταστάσεις ανάπτυξης για δημόσια και ιδιωτικά αποθετήρια και οργανισμούς.
Στο TravisCI, όπως και σε άλλες πλατφόρμες CI, είναι δυνατόν να αποθηκεύσετε μυστικά σε επίπεδο αποθετηρίου που θα αποθηκευτούν κρυπτογραφημένα και θα αποκρυπτογραφηθούν και θα προωθηθούν στη μεταβλητή περιβάλλοντος της μηχανής που εκτελεί την κατασκευή.
Είναι δυνατόν να υποδείξετε τις κλάδους στους οποίους θα είναι διαθέσιμα τα μυστικά (κατά προεπιλογή όλοι) και επίσης αν το TravisCI θα πρέπει να κρύψει την τιμή του αν εμφανιστεί στα logs (κατά προεπιλογή θα το κάνει).
Για κάθε αποθετήριο το TravisCI δημιουργεί ένα ζεύγος κλειδιών RSA, κρατά το ιδιωτικό και καθιστά διαθέσιμο το δημόσιο κλειδί του αποθετηρίου σε εκείνους που έχουν πρόσβαση στο αποθετήριο.
Μπορείτε να αποκτήσετε πρόσβαση στο δημόσιο κλειδί ενός αποθετηρίου με:
Τότε, μπορείτε να χρησιμοποιήσετε αυτή τη ρύθμιση για να κρυπτογραφήσετε μυστικά και να τα προσθέσετε στο .travis.yaml
. Τα μυστικά θα αποκρυπτογραφηθούν όταν εκτελείται η κατασκευή και θα είναι προσβάσιμα στις μεταβλητές περιβάλλοντος.
Σημειώστε ότι τα μυστικά που κρυπτογραφούνται με αυτόν τον τρόπο δεν θα εμφανίζονται στη λίστα των μεταβλητών περιβάλλοντος των ρυθμίσεων.
Με τον ίδιο τρόπο όπως πριν, το TravisCI επιτρέπει επίσης να κρυπτογραφήσετε αρχεία και στη συνέχεια να τα αποκρυπτογραφήσετε κατά τη διάρκεια της κατασκευής:
Σημειώστε ότι κατά την κρυπτογράφηση ενός αρχείου, 2 μεταβλητές περιβάλλοντος θα ρυθμιστούν μέσα στο αποθετήριο, όπως:
Το Travis CI Enterprise είναι μια on-prem έκδοση του Travis CI, την οποία μπορείτε να αναπτύξετε στην υποδομή σας. Σκεφτείτε την ‘server’ έκδοση του Travis CI. Η χρήση του Travis CI σας επιτρέπει να ενεργοποιήσετε ένα εύχρηστο σύστημα Συνεχούς Ενοποίησης/Συνεχούς Ανάπτυξης (CI/CD) σε ένα περιβάλλον, το οποίο μπορείτε να ρυθμίσετε και να ασφαλίσετε όπως θέλετε.
Το Travis CI Enterprise αποτελείται από δύο κύρια μέρη:
TCI υπηρεσίες (ή TCI Core Services), υπεύθυνες για την ενσωμάτωση με συστήματα ελέγχου εκδόσεων, την εξουσιοδότηση κατασκευών, τον προγραμματισμό εργασιών κατασκευής, κ.λπ.
TCI Worker και εικόνες περιβάλλοντος κατασκευής (γνωστές και ως εικόνες OS).
Οι υπηρεσίες TCI Core απαιτούν τα εξής:
Μια βάση δεδομένων PostgreSQL11 (ή νεότερη).
Μια υποδομή για την ανάπτυξη ενός Kubernetes cluster; μπορεί να αναπτυχθεί σε ένα cluster διακομιστών ή σε μια μόνο μηχανή αν απαιτείται.
Ανάλογα με τη ρύθμισή σας, μπορεί να θέλετε να αναπτύξετε και να ρυθμίσετε ορισμένα από τα συστατικά μόνοι σας, π.χ., RabbitMQ - δείτε το Setting up Travis CI Enterprise για περισσότερες λεπτομέρειες.
Ο TCI Worker απαιτεί τα εξής:
Μια υποδομή όπου μπορεί να αναπτυχθεί μια εικόνα docker που περιέχει τον Worker και μια συνδεδεμένη εικόνα κατασκευής.
Συνδεσιμότητα με ορισμένα συστατικά των υπηρεσιών Core του Travis CI - δείτε το Setting Up Worker για περισσότερες λεπτομέρειες.
Η ποσότητα των αναπτυγμένων εικόνων TCI Worker και περιβάλλοντος κατασκευής OS θα καθορίσει τη συνολική ταυτόχρονη ικανότητα ανάπτυξης του Travis CI Enterprise στην υποδομή σας.
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)