From 722dfb95569e3056976845e487b64f147bea40a5 Mon Sep 17 00:00:00 2001 From: Arnaud Chong Date: Wed, 2 Mar 2022 16:24:18 +0100 Subject: [PATCH] Remove poise-service * poise cookbooks are deprecated * Remove the reference and use basic Chef resources Change-Id: I48d2c07f8d4d2ec0206756a1c1a6fac13d9660eb --- attributes/default.rb | 11 +---------- metadata.rb | 1 - recipes/config.rb | 2 +- recipes/install.rb | 7 ++++--- recipes/service.rb | 40 ++++++++++++++-------------------------- 5 files changed, 20 insertions(+), 41 deletions(-) diff --git a/attributes/default.rb b/attributes/default.rb index c498de1..67dfaea 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -13,7 +13,7 @@ default['rundeck_bridge']['gem']['name'] = 'chef-rundeck' default['rundeck_bridge']['gem']['version'] = nil #<> Location of chef-rundeck gem binary -default['rundeck_bridge']['binary'] = '/opt/chef/embedded/bin/chef-rundeck' +default['rundeck_bridge']['binary'] = ::File.join(Gem.bindir, 'chef-rundeck') #<> IP to bind the bridge to default['rundeck_bridge']['options']['host'] = '0.0.0.0' #<> Port the bridge listens to @@ -22,12 +22,3 @@ default['rundeck_bridge']['options']['partial-search'] = 'true' #<> Default username attribute for the node element in the generated resource xml default['rundeck_bridge']['options']['username'] = 'rundeck' - - -# Service setup (Using 'poise') -default['rundeck_bridge']['poise_service']['options'] = { - upstart: { - }, - systemd: { - } -} diff --git a/metadata.rb b/metadata.rb index e363b43..4ec0061 100644 --- a/metadata.rb +++ b/metadata.rb @@ -10,7 +10,6 @@ supports 'centos' depends 'chef-client' -depends 'poise-service' suggests 'rundeck-server' suggests 'rundeck-node' diff --git a/recipes/config.rb b/recipes/config.rb index e6096ff..7d15df4 100644 --- a/recipes/config.rb +++ b/recipes/config.rb @@ -12,5 +12,5 @@ group 'root' mode '0644' content 'log_level :info' - notifies :restart, 'poise_service[chef-rundeck]' + notifies :restart, 'systemd_unit[chef-rundeck.service]' end diff --git a/recipes/install.rb b/recipes/install.rb index 37a4ceb..392d0ca 100644 --- a/recipes/install.rb +++ b/recipes/install.rb @@ -3,8 +3,9 @@ # Recipe: install # -# Poise will create the User/Group but not the 'home' directory -poise_service_user node['rundeck_bridge']['user'] do +group node['rundeck_bridge']['group'] + +user node['rundeck_bridge']['user'] do home node['rundeck_bridge']['home'] group node['rundeck_bridge']['group'] end @@ -28,5 +29,5 @@ # Install chef-rundeck in chef as it requires chef chef_gem node['rundeck_bridge']['gem']['name'] do compile_time false - version node['rundeck_bridge']['gem']['version'] + version node['rundeck_bridge']['gem']['version'] unless node['rundeck_bridge']['gem']['version'].nil? end diff --git a/recipes/service.rb b/recipes/service.rb index 52b37ad..7699407 100644 --- a/recipes/service.rb +++ b/recipes/service.rb @@ -9,30 +9,18 @@ node['rundeck_bridge']['options'].map { |key, value| "--#{key} #{value}" }, ].join(' ') - -# Overwrite and update the command -# (Workaround for Upstart and logs) -node['rundeck_bridge']['poise_service']['options'].each do |k, v| - case k - when 'upstart' - node.default['rundeck_bridge']['poise_service']['options'][k]['command'] = "#{command} 2>&1 > #{node['rundeck_bridge']['home']}/server.log" - when 'systemd' - node.default['rundeck_bridge']['poise_service']['options'][k]['command'] = command - else - fail "Unsupported init service #{k}" - end -end - - -# Define the chef-rundeck service -# -poise_service 'chef-rundeck' do - # Common setup for every providers - user node['rundeck_bridge']['user'] - directory node['rundeck_bridge']['home'] - - # Per init provider options - node['rundeck_bridge']['poise_service']['options'].each do |k, v| - options k, v - end if node['rundeck_bridge']['poise_service']['options'] +systemd_unit 'chef-rundeck.service' do + action %i[create enable] + content(Unit: { + Description: 'chef-rundeck', + }, + Service: { + Environment: '', + ExecStart: command, + ExecReload: '/bin/kill -HUP $MAINPID', + KillSignal: 'TERM', + User: 'chef-rundeck', + WorkingDirectory: '/var/log/chef-rundeck', + Restart: 'on-failure', + },) end