Installation smart-proxy from sources in SLES

Hey guys,

I’m still using SLES15SP6 here, and unfortunately, that can’t be changed. Please excuse me for asking questions about Foreman under SLES. I know half the world likes Red Hat or MS.

Maybe you can still help me…

Foreman is running, and so a smart proxy on the same server. I added the smart proxy under “Infrastructure” → “Smart Proxy,” and it’s found there. I also set up an Apache reverse proxy for Foreman and supplied it with our PKI certificates. Foreman is now accessible on port 443, and all the certificates appear to be working. Our CA certificates are distributed across the clients.

However, there still appear to be one or two problems. The waiting icon for the smart proxy status keeps spinning. The communication status icon also spins under the details.

The /var/log/foreman-proxy/proxy.log has this:

2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/dynflow.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/ansible.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/probing.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/monitoring.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/remote_execution_ssh.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/discovery.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/onboard.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/shellhooks.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/reports.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/reports.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/facts.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/dns.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/templates.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/tftp.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/dhcp.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/puppetca.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/puppet.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/bmc.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/realm.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/logs.yml. Using default settings.
2025-03-12T07:14:16  [D] 'logs' settings: 'enabled': true (default)
2025-03-12T07:14:16  [D] 'logs' ports: 'http': true, 'https': true
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/httpboot.yml. Using default settings.
2025-03-12T07:14:16  [W] Couldn't find settings file /home/foreman/smart-proxy/3.13/config/settings.d/registration.yml. Using default settings.
2025-03-12T07:14:16  [I] Successfully initialized 'foreman_proxy'
2025-03-12T07:14:16  [D] Log buffer API initialized, available capacity: 2000/1000
2025-03-12T07:14:16  [I] Successfully initialized 'logs'
2025-03-12T07:14:16  [I] WEBrick 1.9.1
2025-03-12T07:14:16  [I] ruby 2.7.8 (2023-03-30) [x86_64-linux]
2025-03-12T07:14:16  [I]
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
        
	[...shortened...]

and when I click on “Update features” I find the following short entries

2025-03-12T07:14:16  [D] Rack::Handler::WEBrick is mounted on /.
2025-03-12T07:14:16  [I] WEBrick::HTTPServer#start: pid=421 port=8443
2025-03-12T07:14:16  [I] Smart proxy has launched on 1 socket(s), waiting for requests

2025-03-12T07:17:06  [D] accept: xxx.xxx.xxx.xxx:54782
2025-03-12T07:17:06  [D] Rack::Handler::WEBrick is invoked.
2025-03-12T07:17:06 2cfa0acb [I] Started GET /v2/features
2025-03-12T07:17:06 2cfa0acb [I] Finished GET /v2/features with 200 (3.96 ms)
2025-03-12T07:17:06  [D] close: xxx.xxx.xxx.xxx:54782
2025-03-12T07:17:06  [D] accept: xxx.xxx.xxx.xxx:54792
2025-03-12T07:17:06  [D] Rack::Handler::WEBrick is invoked.
2025-03-12T07:17:06 2cfa0acb [I] Started GET /v2/features
2025-03-12T07:17:06 2cfa0acb [I] Finished GET /v2/features with 200 (0.98 ms)
2025-03-12T07:17:06  [D] close: xxx.xxx.xxx.xxx:54792

I suspect I’m simply missing a few Ruby gems for the smart proxy. Or what else could it be?

If the smart proxy is running properly, can I then import my Ansible roles here? Unfortunately, it doesn’t do that yet.

You have a foreman installer on the supported operating systems. Is that a script I could use as a guide? Or how else can I proceed here?

Some details

SLES15SP6
Foreman 3.13 from sources
Smart-Proxy 3.13 from sources

Smart-Proxy-Gems

*** LOCAL GEMS ***

addressable (2.8.7)
algebrick (0.7.5)
apipie-params (0.0.5)
ast (2.4.2)
base64 (0.1.2)
benchmark (default: 0.1.0)
benchmark-ips (2.14.0)
bigdecimal (3.1.9, default: 2.0.0)
builder (3.3.0)
bundler (default: 2.1.4)
cgi (default: 0.1.0.2)
ci_reporter (1.9.3)
coderay (1.1.3)
concurrent-ruby (1.3.5, 1.1.10)
concurrent-ruby-edge (0.6.0)
crack (1.0.0)
csv (default: 3.1.2)
date (3.4.1, default: 3.0.3)
dbm (default: 1.1.0)
delegate (default: 0.1.0)
dhcpsapi (0.0.11)
did_you_mean (default: 1.4.0)
domain_name (0.6.20240107)
dynflow (1.9.0)
etc (default: 1.1.0)
excon (1.2.5)
facter (4.10.0)
fcntl (default: 1.0.0)
ffi (1.16.3)
fiddle (default: 1.0.0)
fileutils (default: 1.4.1)
forwardable (default: 1.3.1)
gdbm (default: 2.1.0)
getoptlong (default: 0.1.0)
gssapi (1.3.1)
hashdiff (1.1.2)
highline (2.1.0)
hocon (1.4.0)
http-accept (1.7.0)
http-cookie (1.0.8)
io-console (default: 0.5.6)
ipaddr (default: 1.2.2)
irb (default: 1.2.6)
journald-logger (3.1.0)
journald-native (1.0.12)
json (2.10.1, default: 2.3.0)
jwt (2.10.1)
language_server-protocol (3.17.0.4)
little-plugger (1.1.4)
logger (1.6.6, default: 1.4.2)
logging (2.4.0)
logging-journald (2.1.0)
matrix (default: 0.2.0)
method_source (1.1.0)
mime-types (3.6.0)
mime-types-data (3.2025.0304)
mini_portile2 (2.8.8)
minitest (5.13.0)
mocha (1.16.1)
mqtt (0.6.0)
msgpack (1.8.0)
multi_json (1.15.0)
mustermann (2.0.2)
mutex_m (default: 0.1.0)
net-pop (default: 0.1.0)
net-smtp (default: 0.1.0)
net-ssh (7.3.0)
net-telnet (0.2.0)
netrc (0.11.0)
nokogiri (1.15.7 x86_64-linux)
observer (default: 0.1.0)
open3 (default: 0.1.0)
openssl (default: 2.1.4)
ostruct (default: 0.2.0)
parallel (1.26.3)
parser (3.3.7.1)
power_assert (2.0.5, 1.1.7)
prime (default: 0.1.1)
pry (0.15.2)
pstore (default: 0.1.0)
psych (5.2.3, default: 3.1.0)
public_suffix (5.1.1)
racc (1.8.1, default: 1.4.16)
rack (2.2.12)
rack-protection (2.2.4)
rack-test (2.2.0)
rainbow (3.1.1)
rake (13.2.1, 13.0.1)
rake-compiler (1.2.9)
rb-inotify (0.11.1)
rb-kqueue (0.2.8)
rdoc (6.12.0, default: 6.2.1.1)
readline (default: 0.0.2)
readline-ext (default: 0.1.0)
redfish_client (0.6.2)
regexp_parser (2.10.0)
reline (default: 0.1.5)
rest-client (2.1.0)
rexml (3.4.1, default: 3.2.3.1)
rkerberos (0.1.5)
rprogram (0.3.2)
rsec (0.4.3)
rss (default: 0.2.8)
rubocop (1.56.4)
rubocop-ast (1.38.1)
rubocop-performance (1.5.2)
rubocop-rake (0.6.0)
ruby-libvirt (0.8.4)
ruby-nmap (0.10.0)
ruby-prof (1.3.2)
ruby-progressbar (1.13.0)
ruby2_keywords (0.0.5)
rubyipmi (0.11.1)
sd_notify (0.1.1)
sdbm (default: 1.0.0)
sequel (5.90.0)
server_sent_events (0.1.3)
sinatra (2.2.4)
singleton (default: 0.1.0)
smart-proxy-probing (0.0.4)
smart_proxy_ansible (3.5.8, 3.3.1)
smart_proxy_discovery (1.0.5)
smart_proxy_dynflow (0.9.4, 0.5.0)
smart_proxy_host_reports (0.0.4)
smart_proxy_monitoring (0.3.0)
smart_proxy_onboard (0.2.1)
smart_proxy_remote_execution_ssh (0.11.5, 0.5.3)
smart_proxy_reports (1.0.0)
smart_proxy_shellhooks (0.9.3)
sqlite3 (1.6.9 x86_64-linux, 1.6.5 x86_64-linux)
stringio (3.1.5, default: 0.1.0)
strscan (default: 1.0.3)
test-unit (3.6.7, 3.3.4)
thor (1.2.2)
tilt (2.6.0)
timeout (default: 0.1.0)
tracer (default: 0.1.0)
unicode-display_width (2.6.0)
uri (default: 0.10.0.2)
webmock (3.25.1)
webrick (1.9.1, default: 1.6.1)
xmlrpc (0.3.3, 0.3.0)
yaml (default: 0.1.0)
zlib (default: 1.1.0)

Foreman-Gems

*** LOCAL GEMS ***

abbrev (default: 0.1.0)
addressable (2.8.7)
ast (2.4.2)
base64 (0.1.2, default: 0.1.1)
benchmark (default: 0.2.0)
benchmark-ips (2.14.0)
bigdecimal (3.1.9, default: 3.1.1)
builder (3.3.0)
bundler (default: 2.3.27)
cgi (default: 0.3.6)
ci_reporter (1.9.3)
coderay (1.1.3)
concurrent-ruby (1.3.5)
crack (1.0.0)
csv (default: 3.2.5)
date (3.4.1, default: 3.2.2)
debug (1.6.3)
delegate (default: 0.2.0)
dhcpsapi (0.0.11)
did_you_mean (default: 1.6.1)
digest (default: 3.1.0)
drb (default: 2.1.0)
english (default: 0.7.1)
erb (default: 2.2.3)
error_highlight (default: 0.3.0)
etc (default: 1.3.0)
excon (1.2.5)
facter (4.10.0)
fcntl (default: 1.0.1)
ffi (1.17.1 x86_64-linux-gnu)
fiddle (default: 1.1.0)
fileutils (default: 1.6.0)
find (default: 0.1.1)
forwardable (default: 1.3.2)
getoptlong (default: 0.1.1)
gssapi (1.3.1)
hashdiff (1.1.2)
highline (3.1.2)
hocon (1.4.0)
io-console (0.8.0, default: 0.5.11)
io-nonblock (default: 0.1.0)
io-wait (default: 0.2.1)
ipaddr (default: 1.2.4)
irb (default: 1.4.1)
journald-logger (3.1.0)
journald-native (1.0.12)
json (2.10.1, default: 2.6.1)
jwt (2.10.1)
language_server-protocol (3.17.0.4)
little-plugger (1.1.4)
logger (1.6.6, default: 1.5.0)
logging (2.4.0)
logging-journald (2.1.0)
matrix (0.4.2)
method_source (1.1.0)
minitest (5.15.0)
mocha (1.16.1)
multi_json (1.15.0)
mustermann (2.0.2)
mutex_m (default: 0.1.1)
net-ftp (0.1.4)
net-http (default: 0.3.0.1)
net-imap (0.2.4)
net-pop (0.1.1)
net-protocol (default: 0.1.2)
net-smtp (0.3.1.1)
nkf (default: 0.1.1)
observer (default: 0.1.1)
open-uri (default: 0.2.0)
open3 (default: 0.1.1)
openssl (default: 3.0.1)
optparse (default: 0.2.0)
ostruct (default: 0.5.2)
parallel (1.26.3)
parser (3.3.7.1)
pathname (default: 0.2.0)
power_assert (2.0.5, 2.0.1)
pp (default: 0.3.0)
prettyprint (default: 0.1.1)
prime (0.1.2)
pry (0.15.2)
pstore (default: 0.1.1)
psych (5.2.3, default: 4.0.4)
public_suffix (6.0.1)
racc (1.8.1, default: 1.6.0)
rack (2.2.12)
rack-protection (2.2.4)
rack-test (2.2.0)
rainbow (3.1.1)
rake (13.2.1, 13.0.6)
rake-compiler (1.2.9)
rb-inotify (0.11.1)
rb-kqueue (0.2.8)
rbs (2.7.0)
rdoc (6.12.0, default: 6.4.1.1)
readline (default: 0.0.3)
readline-ext (default: 0.1.4)
redfish_client (0.6.2)
regexp_parser (2.10.0)
reline (0.6.0, default: 0.3.1)
resolv (default: 0.2.1)
resolv-replace (default: 0.1.0)
rexml (3.4.1, 3.2.5)
rinda (default: 0.1.1)
rsec (0.4.3)
rss (0.2.9)
rubocop (1.56.4)
rubocop-ast (1.38.1)
rubocop-performance (1.5.2)
rubocop-rake (0.6.0)
ruby-libvirt (0.8.4)
ruby-prof (1.3.2)
ruby-progressbar (1.13.0)
ruby2_keywords (default: 0.0.5)
rubyipmi (0.11.1)
sd_notify (0.1.1)
securerandom (default: 0.2.0)
server_sent_events (0.1.3)
set (default: 1.0.2)
shellwords (default: 0.1.0)
sinatra (2.2.4)
singleton (default: 0.1.1)
stringio (3.1.5, default: 3.0.1.2)
strscan (default: 3.0.1)
syslog (default: 0.1.0)
tempfile (default: 0.1.2)
test-unit (3.6.7, 3.5.3)
thor (1.2.2)
tilt (2.6.0)
time (default: 0.2.2)
timeout (default: 0.2.0)
tmpdir (default: 0.1.2)
tsort (default: 0.1.0)
typeprof (0.21.3)
un (default: 0.2.0)
unicode-display_width (2.6.0)
uri (default: 0.12.2)
weakref (default: 0.1.1)
webmock (3.25.0)
webrick (1.9.1)
xmlrpc (0.3.3)
yaml (default: 0.2.0)
zlib (default: 2.1.1)

I really appreciate your help.

When all the status fields keep spinning without some sort of error message, I would usually suspect a network issue, either misconfigured routing or a firewall issue of some sort.
Can you reach your smart-proxy port 8443 from your main Foreman host (via curl/telnet/anything that shows the connection is at least working on a network level)?

The installer basically is a ruby wrapper around a whole lot of Puppet modules. If you want to take a look at what they do, you can simply download and unpack the foreman-installer RPM from the repos.

The connection is okay. Port 8443 is reachable from within the main-Foreman-host and also from other hosts. IPTables chains are clean; nothing is blocked, dropped or filtered.

The curl-output after a successful connection is

Requested url was not found

My Firefox says