smart_proxy_ansible 3.4.0 → 3.5.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: debe537cdba96e4742fc5e0311bbb073f1b25248bd5dcf394d1368f7027d2db8
|
4
|
+
data.tar.gz: 6a889c1145db1a4958f0e571d5a792e84850aa33542ba072283e95e0aa56328d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02c6d84ed28a87fc0a0f18c2b5d8360e614d4c698f71a34801917157145ca499359e2cb71121d6d6fb42141dcb52a3161c13ca5ea895c8d920be3998cce141ae
|
7
|
+
data.tar.gz: ee31bc6ba19ff2a6e3d348b6f11f9c3ac25212eeb77c6dad32556c49af254cec5320603a63c3c1dea28282561e1fc136e896f4a3f8b3b3db96ae001cc4cd50ae
|
@@ -5,7 +5,8 @@ module Proxy
|
|
5
5
|
rackup_path File.expand_path('http_config.ru', __dir__)
|
6
6
|
settings_file 'ansible.yml'
|
7
7
|
plugin :ansible, Proxy::Ansible::VERSION
|
8
|
-
default_settings :ansible_dir => Dir.home
|
8
|
+
default_settings :ansible_dir => Dir.home,
|
9
|
+
:ansible_environment_file => '/etc/foreman-proxy/ansible.env'
|
9
10
|
# :working_dir => nil
|
10
11
|
|
11
12
|
load_classes ::Proxy::Ansible::ConfigurationLoader
|
@@ -10,6 +10,9 @@ module Proxy::Ansible
|
|
10
10
|
include ::Proxy::Dynflow::Runner::ProcessManagerCommand
|
11
11
|
attr_reader :execution_timeout_interval
|
12
12
|
|
13
|
+
# To make this overridable in development
|
14
|
+
ENVIRONMENT_WRAPPER = ENV['SMART_PROXY_ANSIBLE_ENVIRONMENT_WRAPPER'] || '/usr/libexec/foreman-proxy/ansible-runner-environment'
|
15
|
+
|
13
16
|
def initialize(input, suspended_action:, id: nil)
|
14
17
|
super input, :suspended_action => suspended_action, :id => id
|
15
18
|
@inventory = rebuild_secrets(rebuild_inventory(input), input)
|
@@ -65,6 +68,7 @@ module Proxy::Ansible
|
|
65
68
|
def publish_exit_status(status)
|
66
69
|
process_artifacts
|
67
70
|
super
|
71
|
+
@targets.each_key { |host| publish_exit_status_for(host, status) } if status != 0
|
68
72
|
end
|
69
73
|
|
70
74
|
def initialize_command(*command)
|
@@ -98,7 +102,7 @@ module Proxy::Ansible
|
|
98
102
|
logger.debug("[foreman_ansible] - parsing event file #{event_file}")
|
99
103
|
begin
|
100
104
|
event = JSON.parse(File.read(event_file))
|
101
|
-
if (hostname = event
|
105
|
+
if (hostname = hostname_for_event(event))
|
102
106
|
handle_host_event(hostname, event)
|
103
107
|
else
|
104
108
|
handle_broadcast_data(event)
|
@@ -110,6 +114,17 @@ module Proxy::Ansible
|
|
110
114
|
end
|
111
115
|
end
|
112
116
|
|
117
|
+
def hostname_for_event(event)
|
118
|
+
hostname = event.dig('event_data', 'host') || event.dig('event_data', 'remote_addr')
|
119
|
+
return nil if hostname.nil? || hostname.empty?
|
120
|
+
|
121
|
+
unless @targets.key?(hostname)
|
122
|
+
logger.warn("handle_host_event: unknown host #{hostname} for event '#{event['event']}', broadcasting")
|
123
|
+
return nil
|
124
|
+
end
|
125
|
+
hostname
|
126
|
+
end
|
127
|
+
|
113
128
|
def handle_host_event(hostname, event)
|
114
129
|
log_event("for host: #{hostname.inspect}", event)
|
115
130
|
publish_data_for(hostname, event['stdout'] + "\n", 'stdout') if event['stdout']
|
@@ -175,10 +190,12 @@ module Proxy::Ansible
|
|
175
190
|
def start_ansible_runner
|
176
191
|
env = {}
|
177
192
|
env['FOREMAN_CALLBACK_DISABLE'] = '1' if @rex_command
|
178
|
-
|
193
|
+
env['SMART_PROXY_ANSIBLE_ENVIRONMENT_FILE'] = Proxy::Ansible::Plugin.settings[:ansible_environment_file]
|
194
|
+
command = ['ansible-runner', 'run', @root, '-p', 'playbook.yml']
|
179
195
|
command << '--cmdline' << cmdline unless cmdline.nil?
|
180
196
|
command << verbosity if verbose?
|
181
|
-
|
197
|
+
|
198
|
+
initialize_command(env, ENVIRONMENT_WRAPPER, *command)
|
182
199
|
logger.debug("[foreman_ansible] - Running command '#{command.join(' ')}'")
|
183
200
|
end
|
184
201
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_proxy_ansible
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Nečas
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-11-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -149,6 +149,7 @@ extra_rdoc_files:
|
|
149
149
|
files:
|
150
150
|
- LICENSE
|
151
151
|
- README.md
|
152
|
+
- bin/ansible-runner-environment.sh
|
152
153
|
- bin/json_inventory.sh
|
153
154
|
- bundler.d/ansible.rb
|
154
155
|
- lib/smart_proxy_ansible.rb
|
@@ -185,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
186
|
- !ruby/object:Gem::Version
|
186
187
|
version: '0'
|
187
188
|
requirements: []
|
188
|
-
rubygems_version: 3.
|
189
|
+
rubygems_version: 3.3.20
|
189
190
|
signing_key:
|
190
191
|
specification_version: 4
|
191
192
|
summary: Smart-Proxy Ansible plugin
|