Problem:
Unable to find documentation on how to use External MS DNS and DHCP services. Is it supported at all?
Thanks,
Expected outcome:
Leverage existing MS DNS and DHCP for provisioning hosts
Foreman and Proxy versions:
Foreman = 3.6.1
Smart Proxy = 3.6.1
Katello = 4.8
Foreman and Proxy plugin versions:
Distribution and version:
Other relevant data:
Hi @ericville
I believe using Microsoft DHCP and DNS with Smart Proxies; or installing Smart Proxies on Microsoft Windows is not officially supported by Foreman.
You can have a look at orcharhino; an enterprise product based on Foreman+Katello that supports installing orcharhino Proxies on Microsoft Windows. See Installing orcharhino Proxy on Windows. Disclaimer: I work for ATIX, the company behind orcharhino. Feel free to message my; Iād be happy to connect you.
Regards,
Maximilian.
1 Like
Thanks Maximilian for the information. Iāll check it out
v/r,
Eric W. Courville | MCP Azure Fundamentals, AWS CCP, Security +, Server+, ITIL v3
Office: 337-484-1709
102 Versailles Blvd.
Lafayette, LA 70501
[*]


Hello @ericville, I am running this scenario for years now and it works very well (I am running Windows Server 2019 and Foreman 3.7).
Youāll have to install SmartProxy on your MS Servers directly (from source) and activate the features like usual. Then add them to your Foreman/Katello instance, have a look at the official docs here, there is a section about Windows.
For ease of upgrades Iād recommend to directly git-clone the repo and check out the release matching your Foreman version.
Please note, there is currently an issue in Windows at the bundle install/update step as not all Gems are correctly installed. The workaround is to add a file to bundler.d/
,
# bundler.d/common.rb
gem 'rack', '>= 1.3'
gem 'sd_notify', '~> 0.1'
gem 'sinatra', '~> 2.0'
gem 'webrick', '~> 1.0'
Daniel,
Thanks for the information, itās much appreciated. Iāll give this a try!
Thanks again,
Eric W. Courville | MCP Azure Fundamentals, AWS CCP, Security +, Server+, ITIL v3
Office: 337-484-1709
102 Versailles Blvd.
Lafayette, LA 70501
[*]


Daniel,
How do I get the new file common.rb to be called or referenced?
Thanks,
Eric W. Courville | MCP Azure Fundamentals, AWS CCP, Security +, Server+, ITIL v3
Office: 337-484-1709
102 Versailles Blvd.
Lafayette, LA 70501
[*]


Hello @ericville,
you should not need to ref the file directly as the Gemfile should auto-include every *.rb
file in bundler.d/
.
To make it more clear:
- clone the repo
- check out your applicable release tag
- put the file you created in the
bundler.d/
- folder
- run
bundle install
(with all the exclusions from docs)
If this does not work, please add your findings to my ticket above. Maybe someone with more insight like @Dmitri_Dolguikh could propose a better way?
Thanks again Daniel for the quick response!
Iāll give this a try, and if it doesnāt work, Iāll add to your ticket.
Eric W. Courville | MCP Azure Fundamentals, AWS CCP, Security +, Server+, ITIL v3
Office: 337-484-1709
102 Versailles Blvd.
Lafayette, LA 70501
[*]


Looks like I have everything running as expected now, and the service created. My only issue now is the part where I need to generate a certificate for the new Windows Smart Proxy server. Running the following command as stated in the documentation " ```
puppet cert generate new-smart-proxy-FQDN" on my Foreman Server, results in the following - āError: Unknown Puppet subcommand ācertāā It allows me to use the subcommand however, which is confusing. Any ideas?
Thanks,
Hello @ericville , yes; these puppet cert
commands are outdated now. Youāll need to use puppetserver ca generate --certname <name>
nowadays I think.
If your host running smart-proxy is puppet managed, you can just reuse those certsā¦
Thanks for the response Daniel.
Unfortunately, my Foreman server doesnāt have the command āpuppetserverā. Not sure if I need to install another plugin or feature.
Hello @ericville, you should open a new thread with your question. That said, you only have the puppetserver command where you actually run a puppetserver. Also check your path env;
# which puppetserver
/opt/puppetlabs/bin/puppetserver