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
|
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" => self.id,
|
||||||
"project_info" => {
|
"project_info" => {
|
||||||
"project" => self.id,
|
"project" => self.id,
|
||||||
|
|||||||
@ -20,6 +20,8 @@ module Devops
|
|||||||
define_hook :before_bootstrap
|
define_hook :before_bootstrap
|
||||||
define_hook :after_bootstrap
|
define_hook :after_bootstrap
|
||||||
|
|
||||||
|
before_deploy :create_run_list
|
||||||
|
|
||||||
def initialize server, out
|
def initialize server, out
|
||||||
if server
|
if server
|
||||||
@project = Devops::Db.connector.project(server.project)
|
@project = Devops::Db.connector.project(server.project)
|
||||||
@ -72,8 +74,6 @@ module Devops
|
|||||||
@out.flush
|
@out.flush
|
||||||
DevopsLogger.logger.info "Server with parameters: #{@server.to_hash.inspect} is running"
|
DevopsLogger.logger.info "Server with parameters: #{@server.to_hash.inspect} is running"
|
||||||
unless options["without_bootstrap"]
|
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_options = {
|
||||||
bootstrap_template: i.bootstrap_template
|
bootstrap_template: i.bootstrap_template
|
||||||
}
|
}
|
||||||
@ -132,6 +132,7 @@ module Devops
|
|||||||
retry
|
retry
|
||||||
end
|
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))
|
r = @knife_instance.knife_bootstrap(@out, ip, self.bootstrap_options(ja, options))
|
||||||
if r == 0
|
if r == 0
|
||||||
@out << "Chef node name: #{@server.chef_node_name}\n"
|
@out << "Chef node name: #{@server.chef_node_name}\n"
|
||||||
@ -142,6 +143,7 @@ module Devops
|
|||||||
@out << "Done\n"
|
@out << "Done\n"
|
||||||
DevopsLogger.logger.info "Server with id '#{@server.id}' is bootstraped"
|
DevopsLogger.logger.info "Server with id '#{@server.id}' is bootstraped"
|
||||||
else
|
else
|
||||||
|
@out << "Can not bootstrap node '#{@server.id}', error code: #{r}"
|
||||||
end
|
end
|
||||||
@out.flush
|
@out.flush
|
||||||
r
|
r
|
||||||
@ -178,13 +180,13 @@ module Devops
|
|||||||
@out << "\n"
|
@out << "\n"
|
||||||
@out.flush
|
@out.flush
|
||||||
|
|
||||||
run_list = @server.run_list + provider.run_list
|
# run_list = @server.run_list + provider.run_list
|
||||||
@out << "\nRun list: #{run_list.inspect}"
|
# @out << "\nRun list: #{run_list.inspect}"
|
||||||
# s.options[:run_list] += run_list
|
# s.options[:run_list] += run_list
|
||||||
@knife_instance.set_run_list(@server.chef_node_name, run_list)
|
# @knife_instance.set_run_list(@server.chef_node_name, run_list)
|
||||||
status = deploy_server({})
|
status = deploy_server(@project.deploy_info(@deploy_env))
|
||||||
if status != 0
|
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
|
DevopsLogger.logger.error msg
|
||||||
@out << "\n" + msg + "\n"
|
@out << "\n" + msg + "\n"
|
||||||
end
|
end
|
||||||
@ -347,6 +349,21 @@ module Devops
|
|||||||
end
|
end
|
||||||
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
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -68,7 +68,7 @@ class StackBootstrapWorker < Worker
|
|||||||
|
|
||||||
server = ::Devops::Model::Server.new(server_attrs)
|
server = ::Devops::Model::Server.new(server_attrs)
|
||||||
mongo.server_insert(server)
|
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
|
server
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user