2

我确实有一个使用 VMWare Fusion 的 Ubuntu Server 12.04 VM,我想使用一组 Jenkins 步骤进行配置。

到目前为止,我在安装操作系统时默认拥有带有以下软件包的服务器 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 组成员的 sudoers NOPASSWD 配置,只有当我登录到虚拟机而不是 jenkins 时,即使 jenkins 用户是系统中唯一属于 sudo 组成员的用户。

我会说拥有特定操作系统的映像就足够了,但我猜在这种情况下需要詹金斯从站来开始管理虚拟机。我没有使用 Vagrant,因为 MAC 上的速度非常慢,而 VM Ware Fusion 甚至比并行速度还要快。

有什么线索吗?

4

1 回答 1

1

首先创建一个 shell 脚本,作为您的 askpass 程序。执行时需要输出密码。例如,如果您的密码是,mycleverpassword那么下面的脚本就可以解决问题:

#! /bin/sh
echo mycleverpassword

然后,而不是打电话sudo hostname ubuntu,你会打电话

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

让我知道疼痛是否持续存在。

于 2012-09-30T13:40:14.677 回答