首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打包构建amazon-ebs: sudo: puppet:命令未找到

打包构建amazon-ebs: sudo: puppet:命令未找到
EN

Stack Overflow用户
提问于 2021-06-11 11:46:36
回答 1查看 45关注 0票数 0

当packer构建的时候,我得到了这个puppet调用的错误:

代码语言:javascript
复制
==> amazon-ebs: Provisioning with Puppet...
    amazon-ebs: Creating Puppet staging directory...
    amazon-ebs: Creating directory: /tmp/packer-puppet-masterless
    amazon-ebs: Uploading manifests...
    amazon-ebs: Creating directory: /tmp/packer-puppet-masterless/manifests
    amazon-ebs: Uploading manifest file from: file.pp
    amazon-ebs: Running Puppet: cd /tmp/packer-puppet-masterless && FACTER_packer_build_name='amazon-ebs' FACTER_packer_builder_type='amazon-ebs' sudo -E puppet apply --detailed-exitcodes /tmp/packer-puppet-masterless/manifests/file.pp
==> amazon-ebs: sudo: puppet: command not found
==> amazon-ebs: Prvisioning step had errors: Running the cleanup provisioner, if present...

我的环境是:$ packer -version 1.7.2

代码语言:javascript
复制
Packer Template : 
{
    "builders": [
        {
            "ami_name": "packer-linux-aws-demo-{{timestamp}}",
            "instance_type": "t3.micro",
            "region": "us-west-2",
            "source_ami_filter": {
            "filters": {
            "virtualization-type": "hvm",
            "name": "ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*",
            "root-device-type": "ebs"
            },
            "most_recent": true
            },
            "ssh_username": "ubuntu",
            "type": "amazon-ebs"
        }
    ],
    "provisioners": [
        
        {
            "type": "puppet-masterless",
            "manifest_file": "file.pp"
        }
    ]
}

=========
file.pp
$ cat file.pp
file { "/var/tmp/testfile":
        ensure => "present",
        owner => "root",
        group => "root",
        mode => "664",
        content => "This is a test file created using puppet.
                    Puppet is really cool",
}
EN

回答 1

Stack Overflow用户

发布于 2021-06-19 07:03:48

就像Matt的评论所说的,Puppet不会为你安装在镜像上,你需要自己安装。如果您使用的是Ubuntu,则可以使用内联shell配置器来执行以下操作

代码语言:javascript
复制
"provisioners": [
    {
        "type": "shell",
        "inline": [
            "apt-get update",
            "apt-get install puppet -y",
    }, {

在我的例子中,Puppet二进制文件不在我的路径上(因为我的构建器类型是docker),但是您可以使用Puppet-masterless配置器的puppet_bin_dir属性来指定它的位置

代码语言:javascript
复制
    }, {
        "type": "puppet-masterless",
        "manifest_file": "site.pp",
        "puppet_bin_dir": "/opt/puppetlabs/bin"
    }
]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67931018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档