3

概要

私は素晴らしいことをする ansible プレイブックを持っています。これが機能するのは、ssh をセットアップして、サーバー上で素晴らしさを広めることができるようにしたためです。ビルドが成功したときに自動的に素晴らしいものを提供するようにジェンキンをセットアップしたかったのです。

jenkins には私が持っているのと同じ ssh 機能がないため、これは失敗します。ansible と jenkins を使用してアプリの継続的デリバリーを実現するにはどうすればよいですか?

オプション: authorize-project-plugin

https://wiki.jenkins-ci.org/display/JENKINS/Authorize+Project+plugin

このプラグインをインストールして、ジョブをトリガーするとジョブが実行されるようにしました。

  • グローバルセキュリティの設定で「ビルドをトリガーしたユーザーとして実行」を有効にしました
  • プロジェクトで「ビルド認証の構成」と「ビルドをトリガーしたユーザーとして実行」を有効にしました
  • シェルコマンドを実行するビルドステップを追加whoami

コンソール出力には次のように表示されます。

ユーザーmy nameによって開始されました

私の名前で走る

ワークスペースでのビルドmy path

+ フーアミ

ジェンキンス

ジェンキンスではなく、自分のユーザー名がそこにあると思っていました。

更新: このプラグインは、システム認証ではなく、jenkins アプリケーションの承認を目的としていることを知りました。jenkins ユーザーはsudo user、スクリプト実行の一部として必要になります。

オプション: jenkins ユーザーに NOPASSWD sudo を与える

acct はシステム アカウントであり、jenkinsデフォルトでは tty ではありません。完全なユーザー アカウントにしたり、sudo アクセスを許可したりすることもできますが、それはユーザー アカウントの偽装よりも大きなセキュリティ上の問題のようです。

オプション: ドッカー

オプション: ansible タワー


  • ジェンキンス バージョン 1.617
  • プロジェクト プラグイン バージョン 1.1.0 の承認
4

1 に答える 1

3

Jenkins では、通常、ansible Playbook フォルダーをチェックアウトし、jenkins シェル コマンドで実行します。

できることは、プライベート ssh キーをプレイブックと同じフォルダーに置き、ユーザーと ssh_key の場所を定義する ansible.cfg ファイルを追加することです。

[defaults]
hostfile = hosts
remote_user = userXX
private_key_file = .ssh_key
host_key_checking = False

幸運を!

于 2015-12-22T14:45:04.273 に答える