2016-12-02 65 views
0

什么厨师食谱应该做 -动态使用厨师配方

1-安装多克尔服务拉泊坞图片。 2-动态拖动Docker镜像;计数取决于用户请求。 3-动态运行Docker容器;计数取决于用户请求。

厨师食谱下面正在做什么 -

1-安装Docker服务。 2-拉式码头图片; 3-运行Docker容器;

厨师-搬运工配方相关

# 
# Cookbook Name:: chef-docker 
# Recipe:: default 
# 
# Copyright 2016, SONATA_SOFTWARE 
# 
# All rights reserved - Do Not Redistribute 
# 
docker_service 'default' do 
    action [:create, :start] 
end 
# Pull latest image 
docker_image 'centos' do 
    tag 'latest' 
    action :pull 
end 
# Run container 
docker_container 'first' do 
    repo 'centos' 
    command '/bin/bash' 
    tty true 
    action :run 
    end 
    docker_container 'second' do 
    repo 'centos' 
    command '/bin/bash' 
    tty true 
    action :run 
    end 

我对如何调用/拉无能的“n”没有#图像的和“n”没有#容器的动态或从用户请求以外的配方。任何对此的见解都会对我有所帮助。

+0

厨师不是为交互行为做了一个项目。它应该去desc ribe系统所需的状态。你可以在属性文件中编写你的用户请求并循环,但我不确定你在做什么。 – Tensibai

+0

@Tensibai我想用Chef-recipe动态地拉取用户请求的图片。我的意思是说,上面的配方会拉出只有CentOs的图片。但我正在寻找一种方法,我可以拉我的愿望的图像.i:e,CentOs或Ubuntu等... – Kally

回答

0

那么你会在文档在这个很好的例子,使用一个data_bag,然后看看在data_bag的项目,如“容器和拉/每集装箱开始。

https://docs.chef.io/data_bags.html#create-users

在他们情况下,他们遍历定义用户,然后创建这些一个接一个data_bag。

所以用户请求是在data_bag该特定节点

+0

是否有任何其他替代解决方案此 – Kally

+0

是的,你也可以使用例如节点属性作为散列图或包装食谱。但在这些情况下,用户需要访问node.json(厨师零)或厨师服务器(厨师 - 客户端)。可能不太符合“按用户要求” –