【发布时间】:2018-10-17 07:48:39
【问题描述】:
当我创建一个 vagrant virtualbox packer box 时,我有一个非常奇怪的行为。我正在使用带有 vagrant 的盒子来测试我的 puppet 模块,然后再将它们部署到生产环境中。我想在 ubuntu-16.04 上为 puppet5 服务器使用 puppet-agent。 PACKER_LOG=1 packer build ubuntu-16.04.json 的输出可以在下面的日志文件中看到,但是当我登录到 vagrant box 时,我只有 puppet 3.8.x 和 puppet-common 并且没有 puppet-agent 的踪迹。
我移除了旧盒子,创建了一个新的 vagrant 以确保我使用的是当前盒子,但不幸的是我无法解决这个问题。
所以我要么在盒子里做apt-get update && apt-get install puppet-agent,要么用 vagrant 和 shell 配置器安装它,但我想用打包器来管理它。
这里是日志输出的相关部分:
==> virtualbox-iso: Provisioning with shell script: scripts/puppet.sh
2018/05/07 05:59:27 ui: ==> virtualbox-iso: Provisioning with shell script: scripts/puppet.sh
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 Opening scripts/puppet.sh for reading
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [INFO] 181 bytes written for 'uploadData'
2018/05/07 05:59:27 [INFO] 181 bytes written for 'uploadData'
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [DEBUG] Opening new ssh session
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [DEBUG] Starting remote scp process: scp -vt /tmp
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [DEBUG] Started SCP session, beginning transfers...
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [DEBUG] scp: Uploading script_8159.sh: perms=C0644 size=181
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [DEBUG] SCP session complete, closing stdin pipe.
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [DEBUG] Waiting for SSH session to complete.
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [DEBUG] scp stderr (length 31): Sink: C0644 181 script_8159.sh
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [DEBUG] Opening new ssh session
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [DEBUG] starting remote command: chmod 0755 /tmp/script_8159.sh
2018/05/07 05:59:27 [INFO] RPC client: Communicator ended with: 0
2018/05/07 05:59:27 [INFO] RPC endpoint: Communicator ended with: 0
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [INFO] RPC endpoint: Communicator ended with: 0
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [INFO] RPC client: Communicator ended with: 0
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [DEBUG] Opening new ssh session
2018/05/07 05:59:27 packer: 2018/05/07 05:59:27 [DEBUG] starting remote command: echo 'vagrant' | PACKER_BUILDER_TYPE='virtualbox-iso' PACKER_BUILD_NAME='virtualbox-iso' PACKER_HTTP_ADDR='10.0.2.2:8421' sudo -E -S bash '/tmp/script_8159.sh'
2018/05/07 05:59:27 ui: virtualbox-iso: --2018-05-07 05:59:27-- https://apt.puppetlabs.com/puppet5-release-xenial.deb
virtualbox-iso: --2018-05-07 05:59:27-- https://apt.puppetlabs.com/puppet5-release-xenial.deb
2018/05/07 05:59:28 ui: virtualbox-iso: Resolving apt.puppetlabs.com (apt.puppetlabs.com)... 52.85.173.69, 52.85.173.15, 52.85.173.19, ...
virtualbox-iso: Resolving apt.puppetlabs.com (apt.puppetlabs.com)... 52.85.173.69, 52.85.173.15, 52.85.173.19, ...
virtualbox-iso: Connecting to apt.puppetlabs.com (apt.puppetlabs.com)|52.85.173.69|:443... connected.
2018/05/07 05:59:28 ui: virtualbox-iso: Connecting to apt.puppetlabs.com (apt.puppetlabs.com)|52.85.173.69|:443... connected.
2018/05/07 05:59:28 ui: virtualbox-iso: HTTP request sent, awaiting response... 200 OK
virtualbox-iso: HTTP request sent, awaiting response... 200 OK
virtualbox-iso: Length: 6850 (6.7K) [application/x-debian-package]
2018/05/07 05:59:28 ui: virtualbox-iso: Length: 6850 (6.7K) [application/x-debian-package]
virtualbox-iso: Saving to: ‘puppet5-release-xenial.deb’
2018/05/07 05:59:28 ui: virtualbox-iso: Saving to: ‘puppet5-release-xenial.deb’
virtualbox-iso:
2018/05/07 05:59:28 ui: virtualbox-iso:
virtualbox-iso: 0K ...... 100% 29.0M=0s
2018/05/07 05:59:28 ui: virtualbox-iso: 0K ...... 100% 29.0M=0s
virtualbox-iso:
2018/05/07 05:59:28 ui: virtualbox-iso:
2018/05/07 05:59:28 ui: virtualbox-iso: 2018-05-07 05:59:28 (29.0 MB/s) - ‘puppet5-release-xenial.deb’ saved [6850/6850]
virtualbox-iso: 2018-05-07 05:59:28 (29.0 MB/s) - ‘puppet5-release-xenial.deb’ saved [6850/6850]
virtualbox-iso:
2018/05/07 05:59:28 ui: virtualbox-iso:
virtualbox-iso: Selecting previously unselected package puppet5-release.
2018/05/07 05:59:28 ui: virtualbox-iso: Selecting previously unselected package puppet5-release.
virtualbox-iso: (Reading database ... 64089 files and directories currently installed.)
2018/05/07 05:59:28 ui: virtualbox-iso: (Reading database ... 64089 files and directories currently installed.)
2018/05/07 05:59:28 ui: virtualbox-iso: Preparing to unpack puppet5-release-xenial.deb ...
virtualbox-iso: Preparing to unpack puppet5-release-xenial.deb ...
virtualbox-iso: Unpacking puppet5-release (5.0.0-1xenial) ...
2018/05/07 05:59:28 ui: virtualbox-iso: Unpacking puppet5-release (5.0.0-1xenial) ...
2018/05/07 05:59:28 ui: virtualbox-iso: Setting up puppet5-release (5.0.0-1xenial) ...
virtualbox-iso: Setting up puppet5-release (5.0.0-1xenial) ...
virtualbox-iso: Ign:1 http://apt.puppetlabs.com xenial InRelease
2018/05/07 05:59:29 ui: virtualbox-iso: Ign:1 http://apt.puppetlabs.com xenial InRelease
virtualbox-iso: Get:2 http://apt.puppetlabs.com xenial Release [57.5 kB]
2018/05/07 05:59:29 ui: virtualbox-iso: Get:2 http://apt.puppetlabs.com xenial Release [57.5 kB]
2018/05/07 05:59:29 ui: virtualbox-iso: Hit:3 http://security.ubuntu.com/ubuntu xenial-security InRelease
virtualbox-iso: Hit:3 http://security.ubuntu.com/ubuntu xenial-security InRelease
2018/05/07 05:59:29 ui: virtualbox-iso: Hit:4 http://de.archive.ubuntu.com/ubuntu xenial InRelease
virtualbox-iso: Hit:4 http://de.archive.ubuntu.com/ubuntu xenial InRelease
virtualbox-iso: Get:5 http://apt.puppetlabs.com xenial Release.gpg [836 B]
2018/05/07 05:59:29 ui: virtualbox-iso: Get:5 http://apt.puppetlabs.com xenial Release.gpg [836 B]
virtualbox-iso: Hit:6 http://de.archive.ubuntu.com/ubuntu xenial-updates InRelease
2018/05/07 05:59:29 ui: virtualbox-iso: Hit:6 http://de.archive.ubuntu.com/ubuntu xenial-updates InRelease
2018/05/07 05:59:29 ui: virtualbox-iso: Hit:7 http://de.archive.ubuntu.com/ubuntu xenial-backports InRelease
virtualbox-iso: Hit:7 http://de.archive.ubuntu.com/ubuntu xenial-backports InRelease
virtualbox-iso: Get:8 http://apt.puppetlabs.com xenial/puppet5 amd64 Packages [15.5 kB]
2018/05/07 05:59:30 ui: virtualbox-iso: Get:8 http://apt.puppetlabs.com xenial/puppet5 amd64 Packages [15.5 kB]
virtualbox-iso: Get:9 http://apt.puppetlabs.com xenial/puppet5 i386 Packages [13.4 kB]
2018/05/07 05:59:30 ui: virtualbox-iso: Get:9 http://apt.puppetlabs.com xenial/puppet5 i386 Packages [13.4 kB]
virtualbox-iso: Get:10 http://apt.puppetlabs.com xenial/puppet5 all Packages [7,432 B]
2018/05/07 05:59:30 ui: virtualbox-iso: Get:10 http://apt.puppetlabs.com xenial/puppet5 all Packages [7,432 B]
2018/05/07 05:59:31 ui: virtualbox-iso: Fetched 94.6 kB in 1s (51.7 kB/s)
virtualbox-iso: Fetched 94.6 kB in 1s (51.7 kB/s)
2018/05/07 05:59:33 ui: virtualbox-iso: Reading package lists...
virtualbox-iso: Reading package lists...
virtualbox-iso: Reading package lists...
2018/05/07 05:59:34 ui: virtualbox-iso: Reading package lists...
2018/05/07 05:59:34 ui: virtualbox-iso: Building dependency tree...
virtualbox-iso: Building dependency tree...
2018/05/07 05:59:34 ui: virtualbox-iso: Reading state information...
virtualbox-iso: Reading state information...
2018/05/07 05:59:34 ui: virtualbox-iso: The following NEW packages will be installed:
virtualbox-iso: The following NEW packages will be installed:
2018/05/07 05:59:34 ui: virtualbox-iso: puppet-agent
virtualbox-iso: puppet-agent
2018/05/07 05:59:35 ui: virtualbox-iso: 0 upgraded, 1 newly installed, 0 to remove and 44 not upgraded.
virtualbox-iso: 0 upgraded, 1 newly installed, 0 to remove and 44 not upgraded.
2018/05/07 05:59:35 ui: virtualbox-iso: Need to get 17.2 MB of archives.
virtualbox-iso: Need to get 17.2 MB of archives.
2018/05/07 05:59:35 ui: virtualbox-iso: After this operation, 96.1 MB of additional disk space will be used.
virtualbox-iso: After this operation, 96.1 MB of additional disk space will be used.
2018/05/07 05:59:35 ui: virtualbox-iso: Get:1 http://apt.puppetlabs.com xenial/puppet5 amd64 puppet-agent amd64 5.5.1-1xenial [17.2 MB]
virtualbox-iso: Get:1 http://apt.puppetlabs.com xenial/puppet5 amd64 puppet-agent amd64 5.5.1-1xenial [17.2 MB]
virtualbox-iso: debconf: unable to initialize frontend: Dialog
2018/05/07 05:59:42 ui: virtualbox-iso: debconf: unable to initialize frontend: Dialog
2018/05/07 05:59:42 ui: virtualbox-iso: debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
virtualbox-iso: debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
virtualbox-iso: debconf: falling back to frontend: Readline
2018/05/07 05:59:42 ui: virtualbox-iso: debconf: falling back to frontend: Readline
2018/05/07 05:59:42 ui: virtualbox-iso: debconf: unable to initialize frontend: Readline
virtualbox-iso: debconf: unable to initialize frontend: Readline
virtualbox-iso: debconf: (This frontend requires a controlling tty.)
2018/05/07 05:59:42 ui: virtualbox-iso: debconf: (This frontend requires a controlling tty.)
2018/05/07 05:59:42 ui: virtualbox-iso: debconf: falling back to frontend: Teletype
virtualbox-iso: debconf: falling back to frontend: Teletype
2018/05/07 05:59:42 ui: virtualbox-iso: dpkg-preconfigure: unable to re-open stdin:
virtualbox-iso: dpkg-preconfigure: unable to re-open stdin:
2018/05/07 05:59:43 ui: virtualbox-iso: Fetched 17.2 MB in 7s (2,295 kB/s)
virtualbox-iso: Fetched 17.2 MB in 7s (2,295 kB/s)
2018/05/07 05:59:43 ui: virtualbox-iso: Selecting previously unselected package puppet-agent.
virtualbox-iso: Selecting previously unselected package puppet-agent.
2018/05/07 05:59:43 ui: virtualbox-iso: (Reading database ... 64094 files and directories currently installed.)
virtualbox-iso: (Reading database ... 64094 files and directories currently installed.)
2018/05/07 05:59:43 ui: virtualbox-iso: Preparing to unpack .../puppet-agent_5.5.1-1xenial_amd64.deb ...
virtualbox-iso: Preparing to unpack .../puppet-agent_5.5.1-1xenial_amd64.deb ...
2018/05/07 05:59:43 ui: virtualbox-iso: Unpacking puppet-agent (5.5.1-1xenial) ...
virtualbox-iso: Unpacking puppet-agent (5.5.1-1xenial) ...
virtualbox-iso: Processing triggers for libc-bin (2.23-0ubuntu10) ...
2018/05/07 06:00:19 ui: virtualbox-iso: Processing triggers for libc-bin (2.23-0ubuntu10) ...
virtualbox-iso: Setting up puppet-agent (5.5.1-1xenial) ...
2018/05/07 06:00:19 ui: virtualbox-iso: Setting up puppet-agent (5.5.1-1xenial) ...
2018/05/07 06:00:20 ui: virtualbox-iso: Created symlink from /etc/systemd/system/multi-user.target.wants/puppet.service to /lib/systemd/system/puppet.service.
virtualbox-iso: Created symlink from /etc/systemd/system/multi-user.target.wants/puppet.service to /lib/systemd/system/puppet.service.
virtualbox-iso: Created symlink from /etc/systemd/system/multi-user.target.wants/mcollective.service to /lib/systemd/system/mcollective.service.
2018/05/07 06:00:20 ui: virtualbox-iso: Created symlink from /etc/systemd/system/multi-user.target.wants/mcollective.service to /lib/systemd/system/mcollective.service.
virtualbox-iso: Created symlink from /etc/systemd/system/multi-user.target.wants/pxp-agent.service to /lib/systemd/system/pxp-agent.service.
2018/05/07 06:00:20 ui: virtualbox-iso: Created symlink from /etc/systemd/system/multi-user.target.wants/pxp-agent.service to /lib/systemd/system/pxp-agent.service.
2018/05/07 06:00:21 ui: virtualbox-iso: Removed symlink /etc/systemd/system/multi-user.target.wants/pxp-agent.service.
virtualbox-iso: Removed symlink /etc/systemd/system/multi-user.target.wants/pxp-agent.service.
2018/05/07 06:00:21 ui: virtualbox-iso: Processing triggers for libc-bin (2.23-0ubuntu10) ...
virtualbox-iso: Processing triggers for libc-bin (2.23-0ubuntu10) ...
virtualbox-iso: Reading package lists...
2018/05/07 06:00:22 ui: virtualbox-iso: Reading package lists...
virtualbox-iso: Building dependency tree...
2018/05/07 06:00:22 ui: virtualbox-iso: Building dependency tree...
2018/05/07 06:00:22 ui: virtualbox-iso: Reading state information...
virtualbox-iso: Reading state information...
virtualbox-iso: 0 upgraded, 0 newly installed, 0 to remove and 44 not upgraded.
2018/05/07 06:00:22 ui: virtualbox-iso: 0 upgraded, 0 newly installed, 0 to remove and 44 not upgraded.
2018/05/07 06:00:22 [INFO] 2950 bytes written for 'stdout'
2018/05/07 06:00:22 [INFO] 971 bytes written for 'stderr'
2018/05/07 06:00:22 [INFO] RPC client: Communicator ended with: 0
2018/05/07 06:00:22 [INFO] RPC endpoint: Communicator ended with: 0
2018/05/07 06:00:22 packer: 2018/05/07 06:00:22 [INFO] RPC endpoint: Communicator ended with: 0
2018/05/07 06:00:22 packer: 2018/05/07 06:00:22 [INFO] 2950 bytes written for 'stdout'
2018/05/07 06:00:22 packer: 2018/05/07 06:00:22 [INFO] 971 bytes written for 'stderr'
2018/05/07 06:00:22 packer: 2018/05/07 06:00:22 [INFO] RPC client: Communicator ended with: 0
2018/05/07 06:00:22 packer: 2018/05/07 06:00:22 [DEBUG] Opening new ssh session
2018/05/07 06:00:22 packer: 2018/05/07 06:00:22 [DEBUG] starting remote command: rm -f /tmp/script_8159.sh
2018/05/07 06:00:23 packer: 2018/05/07 06:00:23 [INFO] RPC endpoint: Communicator ended with: 0
2018/05/07 06:00:23 [INFO] RPC client: Communicator ended with: 0
2018/05/07 06:00:23 [INFO] RPC endpoint: Communicator ended with: 0
2018/05/07 06:00:23 packer: 2018/05/07 06:00:23 [INFO] RPC client: Communicator ended with: 0
==> virtualbox-iso: Provisioning with shell script: scripts/cleanup.sh
这是我的 json 文件:
{
"variables": {
"vm_name": "ubuntu-16.04",
"disk_size": "40960",
"http_directory": "http",
"hostname": "vagrant",
"ssh_fullname": "vagrant",
"ssh_username": "vagrant",
"ssh_password": "vagrant",
"ssh_wait_timeout": "10000s",
"iso_url": "http://releases.ubuntu.com/16.04/ubuntu-16.04.4-server-amd64.iso",
"iso_checksum_url": "http://releases.ubuntu.com/16.04/SHA256SUMS",
"iso_checksum_type": "sha256",
"preseed" : "preseed.cfg"
},
"builders": [{
"type": "virtualbox-iso",
"headless": true,
"boot_wait": "10s",
"disk_size": "{{user `disk_size`}}",
"http_directory": "http",
"guest_os_type": "Ubuntu_64",
"iso_url": "{{user `iso_url`}}",
"iso_checksum_url": "{{user `iso_checksum_url`}}",
"iso_checksum_type": "{{user `iso_checksum_type`}}",
"ssh_username": "{{user `ssh_username`}}",
"ssh_password": "{{user `ssh_password`}}",
"ssh_wait_timeout": "{{user `ssh_wait_timeout`}}",
"shutdown_command": "echo '{{user `ssh_password`}}' | sudo -S shutdown -P now",
"guest_additions_path": "VBoxGuestAdditions_{{.Version}}.iso",
"virtualbox_version_file": ".vbox_version",
"vboxmanage": [
[ "modifyvm", "{{.Name}}", "--cpus", "2" ],
[ "modifyvm", "{{.Name}}", "--memory", "1024" ],
[ "modifyvm", "{{.Name}}", "--nictype1", "virtio" ],
[ "modifyvm", "{{.Name}}", "--natdnsproxy1", "on" ],
[ "modifyvm", "{{.Name}}", "--natdnshostresolver1", "on" ]
],
"boot_command": [
"<enter><wait>",
"<f6><esc>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs>",
"/install/vmlinuz noapic ",
"initrd=/install/initrd.gz ",
"auto preseed/url=http://{{.HTTPIP}}:{{.HTTPPort}}/preseed.cfg ",
"auto-install/enable=true ",
"debconf/frontend=noninteractive<wait> ",
"debian-installer={{ user `locale` }} auto locale={{ user `locale` }} kbd-chooser/method=de ",
"fb=false debconf/frontend=noninteractive ",
"console-setup/ask_detect=false ",
"keyboard-configuration/modelcode=pc105 ",
"keyboard-configuration/layout=DE ",
"keyboard-configuration/variant=DE ",
"hostname={{user `hostname`}} ",
"passwd/user-fullname={{ user `ssh_fullname` }} ",
"passwd/user-password={{ user `ssh_password` }} ",
"passwd/user-password-again={{ user `ssh_password` }} ",
"passwd/username={{ user `ssh_username` }} ",
"-- <wait>",
"<enter>"
]
}],
"provisioners": [
{
"type": "shell",
"pause_before": "30s",
"execute_command": "echo '{{ user `ssh_password` }}' | {{.Vars}} sudo -E -S bash '{{.Path}}'",
"scripts": [
"scripts/network.sh",
"scripts/config.sh",
"scripts/vagrant.sh",
"scripts/virtualbox.sh",
"scripts/puppet.sh",
"scripts/cleanup.sh"
]
}
],
"post-processors": [
{
"type": "vagrant",
"override": {
"virtualbox": {
"output": "ubuntu-16-04-vagrant-vbox.box"
}
}
}
]
}
这就是我使用scripts/puppet.sh 安装puppet-agent 的方式:
#!/bin/bash -eux
wget https://apt.puppetlabs.com/puppet5-release-xenial.deb
dpkg -i puppet5-release-xenial.deb
apt-get update
apt-get install puppet-agent -y
gem install r10k
如果您需要其他脚本的内容和preseed.cfg 文件,我也会发布它们。
感谢您的帮助。
【问题讨论】:
-
packer 模板、virtualbox builder 输出和 puppet 安装脚本对我来说都很好,所以我的猜测是在 @987654332 的 puppet 之前安装了一个较旧的 puppet @ 在你的路径中。当您登录到您的后置备的 vagrant box 时,
/opt/puppetlabs/bin中是否安装了 puppet 5.5.1?此外,看起来gem install r10k在打包程序构建期间没有发生。这是真的吗? -
@MattSchuchard 我最近添加了
gem install r10k,并且安装了r10k也有相同的输出。在后置备框中,/opt/puppetlabs/bin中没有 puppet5。我想知道为什么?我还做了一个vagrant up --no-provision来检查加壳程序是否删除了安装后记一些方法或流浪供应商。但同样的问题,没有安装 puppet5。 -
@MattSchuchard 如果你愿意,我也可以将所有其他脚本的内容发布到 Vagrantfile 中。
-
现在我删除了除
puppet.sh之外的所有其他脚本配置程序,结果相同,安装了 r10k,否则我安装了以下软件包:puppet、puppet-common、puppet5-release、@ 987654343@,ruby-semantic-puppet。并且没有puppet-agent的踪迹!我不明白! -
现在我只保留
apt-get install puppet-agent -y,结果相同。我希望有人可以提供帮助。
标签: vagrant virtualbox puppet packer