Basic TravisCI Information

htARTE(HackTricks AWS Red Team Expert) でゼロからヒーローまでAWSハッキングを学ぶ

HackTricksをサポートする他の方法:

アクセス

TravisCIは、Github、Bitbucket、Assembla、Gitlabなどの異なるgitプラットフォームと直接統合されます。TravisCIは、TravisCIと統合したいリポジトリにアクセス権を与えるようユーザーに求めます。

例えば、Githubでは以下の権限を求めます:

  • user:email(読み取り専用)

  • read:org(読み取り専用)

  • repo: パブリックおよびプライベートのリポジトリと組織に対するコード、コミットステータス、共同作業者、デプロイメントステータスへの読み取りおよび書き込みアクセスを付与します。

暗号化されたシークレット

環境変数

TravisCIでは、他のCIプラットフォームと同様に、リポジトリレベルのシークレットを保存し、暗号化されて保存され、ビルドを実行するマシンの環境変数に復号化されてプッシュされることが可能です。

シークレットが利用可能になるブランチを指定することが可能です(デフォルトはすべて)し、またTravisCIがログに表示される場合にその値を非表示にすべきかどうかも指定できます(デフォルトでは非表示になります)。

カスタム暗号化されたシークレット

各リポジトリに対してTravisCIはRSAキーペアを生成し、プライベートなものを保持し、リポジトリにアクセス権を持つ人にはリポジトリの公開鍵を利用可能にします。

1つのリポジトリの公開鍵にアクセスすることができます。

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

次に、このセットアップを使用してシークレットを暗号化し、.travis.yaml に追加できます。シークレットはビルド実行時に復号され、環境変数でアクセス可能になります。

この方法で暗号化されたシークレットは、設定の環境変数にリストされることはありません。

カスタム暗号化ファイル

以前と同様に、TravisCI ではファイルを暗号化してからビルド中に復号することも可能です。

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.

TravisCIエンタープライズ

Travis CI Enterpriseは、Travis CIのオンプレミスバージョンであり、自分のインフラストラクチャに展開できます。Travis CIの「サーバー」バージョンと考えてください。Travis CIを使用すると、簡単に構成およびセキュリティを設定できる環境で、継続的インテグレーション/継続的デプロイメント(CI/CD)システムを有効にできます。

Travis CI Enterpriseには、次の2つの主要な部分があります:

  1. TCI サービス(またはTCIコアサービス)は、バージョン管理システムとの統合、ビルドの承認、ビルドジョブのスケジューリングなどを担当します。

  2. TCI Workerおよびビルド環境イメージ(OSイメージ)。

TCIコアサービスには、次のものが必要です:

  1. PostgreSQL11(以降のバージョン)データベース。

  2. Kubernetesクラスタを展開するインフラストラクチャ。必要に応じて、サーバークラスタに展開するか、単一のマシンに展開することができます。

  3. セットアップに応じて、RabbitMQなどのコンポーネントを自分で展開および構成することができます。詳細については、Travis CI Enterpriseのセットアップを参照してください。

TCI Workerには、次のものが必要です:

  1. Workerとリンクしたビルドイメージを含むDockerイメージを展開できるインフラストラクチャ

  2. 特定のTravis CIコアサービスコンポーネントへの接続。詳細については、Workerのセットアップを参照してください。

展開されたTCI Workerおよびビルド環境OSイメージの数によって、Travis CI Enterpriseのインフラストラクチャでの総同時容量が決まります。

最終更新