2

一連のJenkinsステップでプロビジョニングしたいVMWareFusionを使用するUbuntuServer12.04VMがあります。

これまでのところ、OSをインストールするときに、デフォルトで次のパッケージを含むサーバーVMがあります。

  1. default-java(これはJenkins Slave用のOpenJDKです)
  2. openssh-server(クライアントとの通信用)

このVMテンプレートに次の変更を加えて、後で任意の目的に使用できるようにしたいと思います。

  1. ホスト名/ホスト構成を変更します(再起動が必要です)
  2. 必要に応じてパッケージのインストールを実行する(git-core)
  3. puppetマスターサーバーをインストールします。

ubuntuにはrootアカウントがないため、コマンドを実行しようとすると問題が発生します。

+ sudo hostname ubuntu
sudo: no tty present and no askpass program specified
Build step 'Execute shell' marked build as failure
Finished: FAILURE

sudoグループのメンバーであるシステム内の唯一のユーザーがjenkinsユーザーである場合でも、VMにログインした場合にのみ、sudoグループメンバーのsudoers NOPASSWD構成を変更してみましたが、jenkinsでは変更しませんでした。

特定のOSを使用してイメージを作成するだけで十分だと思いますが、このシナリオでは、VMの管理を開始するためにjenkinsスレーブを配置する必要があると思います。私はVagrantを使用していません。これは、MACで非常に低速であり、VMWareFusionはパラレルよりも超高速であるためです。

手がかりはありますか?

4

1 に答える 1

1

まず、askpassプログラムとして機能するシェルスクリプトを作成します。実行時にパスワードを出力する必要があります。たとえば、パスワードがmycleverpassword次の場合、次のスクリプトでうまくいきます。

#! /bin/sh
echo mycleverpassword

sudo hostname ubuntu次に、を呼び出す代わりに、

export SUDO_ASKPASS="/path/to/myaskpass.sh"; sudo -A hostname ubuntu

Lemmeは痛みが続くかどうかを知っています。

于 2012-09-30T13:40:14.677 に答える