我最近一直在玩打包机,发现它是一个了不起的工具。但是我没有在安装脚本中使用已安装的工具。
这是我一直在玩的一个示例包装模板(我已经知道有更好的方法可以将这个用于脚本和配置文件。但为了简单起见,我在学习这个):
{
"variables":{
"aws_access_key": "{{env `AWS_ACCESS_KEY`}}",
"aws_secret_key": "{{env `AWS_SECRET_KEY`}}"
},
"builders":[{
"type": "amazon-ebs",
"access_key":"{{user `aws_access_key`}}",
"secret_key":"{{user `aws_secret_key`}}",
"region": "us-east-1",
"source_ami": "ami-de0d9eb7",
"instance_type": "t1.micro",
"ssh_username": "ubuntu",
"ami_name": "packer-example2 {{timestamp}}"
}],
"provisioners":[{
"type": "shell",
"inline":[
"sleep 30",
"echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list",
"echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list",
"sudo apt-get-repository ppa:chris-lea/node.js",
"wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc",
"sudo apt-key add rabbitmq-signing-key-public.asc",
"sudo apt-get update",
"sudo apt-get install -y build-essential python-dev",
"sudo apt-get build-dep -y python-imaging",
"sudo apt-get install -y redis-server",
"sudo apt-get install -y mongodb-org",
"sudo apt-get install -y nodejs",
"sudo apt-get install -y nginx",
"sudo apt-get install -y rabbitmq-server",
"sudo apt-get install -y git",
"sudo apt-get -y install postgresql libpq-dev postgresql-contrib",
"sudo apt-get -y install htop",
"sudo apt-get -y install sysstat",
"sudo apt-get install -y curl",
"sudo apt-get install -y ntp",
"sudo apt-get install -y wget",
"npm install -g swamp bower grunt"
]
}]
}
我收到以下错误消息:
amazon-ebs:sudo:npm:command not found
我知道npm安装了nodejs(至少根据我的经验)所以我可能会遗漏一些东西。我想当我尝试使用类似的平台安装工具时也会发生这种情况:pip,gem等...
答案 0 :(得分:1)
自从我提出这个问题以来已经有一段时间了,我重新访问了,现在我能够回答这个问题(现在我使用打包器来构建我们的生产机器,仍然很棒)并提供了一些指向工作包解决方案的指示< / p>
sudo apt-add-repository
对于node.js repo,从未工作过,所以我真的没有安装npm,并且得到了一个与ubuntu存储库捆绑的旧node.js版本(没有chris- lea repository)并且没有npm。
sudo apt-get install -y software-properties-common
sudo apt-get install -y python-software-properties
在尝试安装npm模块之前,还有一个好主意是安装git,curl,wget,unzip等。因为某些节点模块/工具实际上依赖于它们。
根本不要使用ubuntu node / npm bundle .. install nvm并随之安装所需的node.js和IO.js版本。在尝试使用新的npm之前,不要忘记source
nvm.sh ..
希望这有助于遇到此问题的任何人。