before deploy hook: generate run list
This commit is contained in:
parent
6c1cd9b9f2
commit
83cb04ab85
@ -139,7 +139,8 @@ module Devops
|
||||
|
||||
def deploy_info deploy_env, build_number
|
||||
{
|
||||
"run_list" => deploy_env.run_list,
|
||||
"use_json_file" => true,
|
||||
# "run_list" => Set.new.merge(self.run_list).merge(deploy_env.run_list).to_a,
|
||||
"project" => self.id,
|
||||
"project_info" => {
|
||||
"project" => self.id,
|
||||
|
||||
@ -20,6 +20,8 @@ module Devops
|
||||
define_hook :before_bootstrap
|
||||
define_hook :after_bootstrap
|
||||
|
||||
before_deploy :create_run_list
|
||||
|
||||
def initialize server, out
|
||||
if server
|
||||
@project = Devops::Db.connector.project(server.project)
|
||||
@ -72,8 +74,6 @@ module Devops
|
||||
@out.flush
|
||||
DevopsLogger.logger.info "Server with parameters: #{@server.to_hash.inspect} is running"
|
||||
unless options["without_bootstrap"]
|
||||
@server.run_list = Set.new.merge(@project.run_list).merge(@deploy_env.run_list).merge(@server.run_list).to_a
|
||||
@server.chef_node_name = provider.create_default_chef_node_name(@server) if @server.chef_node_name.nil?
|
||||
bootstrap_options = {
|
||||
bootstrap_template: i.bootstrap_template
|
||||
}
|
||||
@ -132,6 +132,7 @@ module Devops
|
||||
retry
|
||||
end
|
||||
|
||||
@server.chef_node_name = provider.create_default_chef_node_name(@server) if @server.chef_node_name.nil?
|
||||
r = @knife_instance.knife_bootstrap(@out, ip, self.bootstrap_options(ja, options))
|
||||
if r == 0
|
||||
@out << "Chef node name: #{@server.chef_node_name}\n"
|
||||
@ -142,6 +143,7 @@ module Devops
|
||||
@out << "Done\n"
|
||||
DevopsLogger.logger.info "Server with id '#{@server.id}' is bootstraped"
|
||||
else
|
||||
@out << "Can not bootstrap node '#{@server.id}', error code: #{r}"
|
||||
end
|
||||
@out.flush
|
||||
r
|
||||
@ -178,13 +180,13 @@ module Devops
|
||||
@out << "\n"
|
||||
@out.flush
|
||||
|
||||
run_list = @server.run_list + provider.run_list
|
||||
@out << "\nRun list: #{run_list.inspect}"
|
||||
# run_list = @server.run_list + provider.run_list
|
||||
# @out << "\nRun list: #{run_list.inspect}"
|
||||
# s.options[:run_list] += run_list
|
||||
@knife_instance.set_run_list(@server.chef_node_name, run_list)
|
||||
status = deploy_server({})
|
||||
# @knife_instance.set_run_list(@server.chef_node_name, run_list)
|
||||
status = deploy_server(@project.deploy_info(@deploy_env))
|
||||
if status != 0
|
||||
msg = "Failed on chef-client with project run list, server with id '#{@server.id}'"
|
||||
msg = "Failed on chef-client with run list, server with id '#{@server.id}'"
|
||||
DevopsLogger.logger.error msg
|
||||
@out << "\n" + msg + "\n"
|
||||
end
|
||||
@ -347,6 +349,21 @@ module Devops
|
||||
end
|
||||
end
|
||||
|
||||
def create_run_list out, deploy_info
|
||||
out << "\nGenerate run list hook...\n"
|
||||
out << "Project run list: #{@project.run_list.join(", ")}\n"
|
||||
out << "Deploy environment run list: #{@deploy_env.run_list.join(", ")}\n"
|
||||
out << "Server run list: #{@server.run_list.join(", ")}\n"
|
||||
rlist = Set.new.merge(@project.run_list).merge(@deploy_env.run_list).merge(@server.run_list)
|
||||
if @server.stack
|
||||
stack = Devops::Db.stack(@server.stack)
|
||||
out << "Stack run list: #{stack.run_list.join(", ")}\n"
|
||||
rlist.merge(stack.run_list)
|
||||
end
|
||||
deploy_info["run_list"] = rlist.to_a
|
||||
out << "New deploy run list: #{deploy_info["run_list"].join(", ")}\nRun list has been generated\n\n"
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -68,7 +68,7 @@ class StackBootstrapWorker < Worker
|
||||
|
||||
server = ::Devops::Model::Server.new(server_attrs)
|
||||
mongo.server_insert(server)
|
||||
server.chef_node_name = provider.create_default_chef_node_name(server)
|
||||
# server.chef_node_name = provider.create_default_chef_node_name(server)
|
||||
server
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
Reference in New Issue
Block a user