Project

General

Profile

Troubleshooting » History » Version 67

Dominic Cleal, 07/31/2014 03:24 AM

1 3 Ohad Levy
{{toc}}
2 3 Ohad Levy
3 43 Lukas Zapletal
h1. How to provide enough info to get help?
4 43 Lukas Zapletal
5 43 Lukas Zapletal
Foreman is pretty complex software project with many components and extensive configuration. Always try to describe best your specific case (OS, version, ruby and foreman version, database, specific configuration). From Foreman version 1.2 you can use _foreman-debug_ script which collects all these information and also filters out things like passwords or tokens. For earlier Foreman releases you can use this bash script directly from git: https://github.com/theforeman/foreman/blob/develop/script/foreman-debug
6 43 Lukas Zapletal
7 67 Dominic Cleal
h1. ERF error code
8 67 Dominic Cleal
9 67 Dominic Cleal
If you see an ERF error code, such as ERF12-7740, look it up on [[ErrorCodes]].
10 67 Dominic Cleal
11 1 Ohad Levy
h1. rake aborted!
12 1 Ohad Levy
13 1 Ohad Levy
I get the following error while running rake db:migrate
14 1 Ohad Levy
<pre>
15 1 Ohad Levy
rake aborted!
16 1 Ohad Levy
undefined method `reenable' for <Rake::Task db:schema:dump => [environment]>:Rake::Task
17 1 Ohad Levy
</pre>
18 1 Ohad Levy
19 1 Ohad Levy
this means you have an old version of rake (older than 0.87), you can verify it by typing:
20 1 Ohad Levy
<pre>
21 1 Ohad Levy
rake --version
22 1 Ohad Levy
</pre>
23 1 Ohad Levy
24 1 Ohad Levy
Usually this error is "safe" to ignore, however, it is recommended to upgrade to rake >= 0.87
25 2 Ohad Levy
26 10 Corey Osman
27 20 Florian Koch
h1. Unable to save: failed to detect boot server: getaddrinfo: Name or service not known
28 1 Ohad Levy
29 20 Florian Koch
if you have registred your smart-proxys via name, and these name are not resolvable, you get this error, you can add the name to your dns server or set 
30 20 Florian Koch
:tftp_servername: in smart-proxy settings to the ip of the smart-proxy.
31 10 Corey Osman
32 7 Corey Osman
h1. I use puppet enterprise, what now?
33 7 Corey Osman
34 7 Corey Osman
As of PE version 1.0, foreman won't install easily without a few modifications.  Since PE ships with its own version of Ruby you will need to install a few gems.
35 12 Corey Osman
Basically you need to tell foreman to use the PE provided ruby library instead.  Your not required to run the puppet version of ruby either as many distros now ship with ruby 1.8.7.
36 7 Corey Osman
37 8 Ohad Levy
# You first need to install the pe-ruby-devel package that ships with PE.  You can find this in your packages folder wherever you extracted PE.
38 1 Ohad Levy
      a. rpm -ivh pe-ruby-devel-1.8.7.302-1.el5.i386.rpm 
39 8 Ohad Levy
# Update your path variable to use the ruby version PE ships with (export PATH=/opt/puppet/bin:$PATH)
40 8 Ohad Levy
# Check to make sure your PATH was updated ("which gem" should return /opt/puppet/bin/gem)
41 8 Ohad Levy
# gem install json
42 8 Ohad Levy
# gem install rest-client
43 7 Corey Osman
(install the gem database driver you use)
44 8 Ohad Levy
# gem install sqlite3 or gem install mysql  ( you may have additional dependencies that would need to be resolved first)
45 7 Corey Osman
46 7 Corey Osman
Some of the gem dependencies can be resolved by installing the development library for that package (example: mysql-devel)
47 7 Corey Osman
48 7 Corey Osman
I found it difficult to install the sqlite3 gem because of dependency hell so I just setup mysql instead which was far easier to setup.  Additionally mysql is much more scalable than sqlite.
49 7 Corey Osman
50 7 Corey Osman
You can get a list of the currently installed gems by using: gem list.
51 1 Ohad Levy
52 10 Corey Osman
If your running the foreman init script or /etc/sysconfig/foreman configuration file.  You may need to update apache/passenger configurations that point to the PE ruby version.
53 6 Corey Osman
54 6 Corey Osman
55 2 Ohad Levy
h1. error: Entry 'some file' not uptodate. Cannot merge.
56 2 Ohad Levy
57 2 Ohad Levy
If you downloaded Foreman from source (git), it could be that some of the files you have modified (or were modified automatically) conflicts with another file Foreman wants to upgrade.
58 2 Ohad Levy
59 2 Ohad Levy
If you don't think that you edited this file (e.g. db/schema.rb) it is usually safe to do:
60 2 Ohad Levy
<pre>
61 2 Ohad Levy
git checkout 'some file'
62 2 Ohad Levy
</pre> 
63 2 Ohad Levy
64 2 Ohad Levy
This will revert the file to its previous condition (as in the repo at the time of checkout) and now you should be able to get the latest version by:
65 2 Ohad Levy
<pre>
66 2 Ohad Levy
git pull
67 2 Ohad Levy
</pre>
68 3 Ohad Levy
69 3 Ohad Levy
h1. Strange errors with passenger
70 3 Ohad Levy
71 3 Ohad Levy
Passenger executes foreman, based on the owner of the config/environmnets.rb file, make sure that this use can actually access:
72 3 Ohad Levy
* puppet configuration files
73 3 Ohad Levy
* sqlite database (if using sqlite)
74 3 Ohad Levy
* write to log, tmp directories
75 3 Ohad Levy
76 3 Ohad Levy
see source:extras/puppet/foreman for complete puppet based setup for Foreman.
77 4 Bash Shell
78 4 Bash Shell
79 4 Bash Shell
80 4 Bash Shell
h1. error: Could not send facts to Foreman: wrong Content-Length format (RuntimeError)
81 4 Bash Shell
82 4 Bash Shell
You might see this error if you run the HTTP push facts script or the sample external nodes script.
83 4 Bash Shell
This is most likely due to older version of the mongrel gem. Please try and update your gems.
84 4 Bash Shell
85 4 Bash Shell
<pre>
86 4 Bash Shell
gem update mongrel
87 4 Bash Shell
</pre>
88 5 Lukas Zapletal
89 5 Lukas Zapletal
h1. Is my Foreman instance running?
90 5 Lukas Zapletal
91 5 Lukas Zapletal
There is simple status service that returns JSON with "result" message "ok" when the instance is up and running. It also "pings" database and returns lag. Example:
92 5 Lukas Zapletal
93 5 Lukas Zapletal
<pre>
94 5 Lukas Zapletal
$ curl -k -H "Accept: application/json" http://instance:3000/status
95 5 Lukas Zapletal
{"status":200,"result":"ok","db_duration_ms":"5"}
96 5 Lukas Zapletal
</pre>
97 9 Dis Connect
98 9 Dis Connect
h1. How do I enable debugging?
99 9 Dis Connect
100 1 Ohad Levy
Edit config/environments/production.rb and uncomment "config.log_level = :debug"
101 64 Romain Vrignaud
102 64 Romain Vrignaud
To enable debugging of Compute Resources HTTP requests, you should pass some environment variables:
103 64 Romain Vrignaud
<pre>
104 64 Romain Vrignaud
  cd ~foreman
105 64 Romain Vrignaud
  EXCON_DEBUG=true DEBUG=true ./script/rails s
106 64 Romain Vrignaud
</pre>
107 13 Corey Osman
108 13 Corey Osman
h1. [[Unattended Provisioning Troubleshooting]]
109 14 Florian Koch
110 14 Florian Koch
h1. Puppet and Storeconfigs: err: Could not retrieve catalog from remote server: Error 400 on SERVER: stack level too deep
111 14 Florian Koch
112 14 Florian Koch
Your activerecord Version is to new, you need activrecord 3.0.10 see http://projects.puppetlabs.com/issues/9290
113 14 Florian Koch
114 14 Florian Koch
<pre>
115 14 Florian Koch
gem uninstall activerecord
116 14 Florian Koch
gem install activerecord -v 3.0.10
117 14 Florian Koch
</pre>
118 15 Romain Vrignaud
119 15 Romain Vrignaud
120 15 Romain Vrignaud
121 15 Romain Vrignaud
h1. How do I fix this error: "Unable to find directory $confdir/environments/$environment/modules in environment master" ?
122 15 Romain Vrignaud
123 15 Romain Vrignaud
If you've followed http://docs.puppetlabs.com/guides/environment.html#configuring-environments-on-the-puppet-master to 
124 15 Romain Vrignaud
create a multi-environment puppet configuration, you're initial rake may look something like this:
125 15 Romain Vrignaud
<pre>
126 15 Romain Vrignaud
rake puppet:import:puppet_classes RAILS_ENV=production
127 15 Romain Vrignaud
(in /usr/share/foreman)
128 15 Romain Vrignaud
Evaluating possible changes to your installation
129 15 Romain Vrignaud
Problems were detected during the evaluation phase
130 15 Romain Vrignaud
131 15 Romain Vrignaud
Unable to find directory $confdir/environments/$environment/modules in environment master
132 15 Romain Vrignaud
133 15 Romain Vrignaud
Please fix these issues and try again
134 15 Romain Vrignaud
</pre>
135 15 Romain Vrignaud
This is because Foreman does not currently evaluate $confdir.  There is a feature request open on this issue.  In the 
136 15 Romain Vrignaud
meantime, hard code your $confdir in your puppet.conf.
137 15 Romain Vrignaud
138 21 Romain Vrignaud
h1. Smart-proxy do not recognize my puppet environment
139 23 Romain Vrignaud
140 21 Romain Vrignaud
If I query smart-proxy and it return empty puppet environment :
141 22 Romain Vrignaud
<pre>
142 21 Romain Vrignaud
curl -k -H "Content-Type:application/json" -H "Accept:application/json" http://puppet:8443/puppet/environments
143 21 Romain Vrignaud
=> []
144 22 Romain Vrignaud
</pre>
145 21 Romain Vrignaud
146 21 Romain Vrignaud
You may have to add in your puppetmaster's puppet.conf environment definition like :
147 21 Romain Vrignaud
148 22 Romain Vrignaud
<pre>
149 21 Romain Vrignaud
[production]
150 21 Romain Vrignaud
    manifest   = /etc/puppet/manifests/site.pp
151 21 Romain Vrignaud
    modulepath = /etc/puppet/modules
152 21 Romain Vrignaud
    fileserverconfig = /etc/puppet/fileserver.conf
153 21 Romain Vrignaud
    templatedir=/etc/puppet/templates/
154 21 Romain Vrignaud
155 21 Romain Vrignaud
[preprod]
156 21 Romain Vrignaud
    manifest   = /etc/puppet/preprod/manifests/site.pp
157 21 Romain Vrignaud
    modulepath = /etc/puppet/preprod/modules
158 21 Romain Vrignaud
    fileserverconfig = /etc/puppet/preprod/fileserver.conf
159 21 Romain Vrignaud
    templatedir=/etc/puppet/preprod/templates
160 21 Romain Vrignaud
161 21 Romain Vrignaud
[development]
162 21 Romain Vrignaud
    manifest   = /etc/puppet/development/manifests/site.pp
163 21 Romain Vrignaud
    modulepath = /etc/puppet/development/modules
164 21 Romain Vrignaud
    fileserverconfig = /etc/puppet/development/fileserver.conf
165 21 Romain Vrignaud
    templatedir=/etc/puppet/development/templates/
166 21 Romain Vrignaud
167 21 Romain Vrignaud
[test]
168 21 Romain Vrignaud
    manifest   = /etc/puppet/test/manifests/site.pp
169 21 Romain Vrignaud
    modulepath = /etc/puppet/test/modules
170 21 Romain Vrignaud
    fileserverconfig = /etc/puppet/test/fileserver.conf
171 21 Romain Vrignaud
    templatedir=/etc/puppet/test/templates/
172 22 Romain Vrignaud
</pre>
173 21 Romain Vrignaud
174 21 Romain Vrignaud
175 15 Romain Vrignaud
h1. How do I fix the puppet class import problem with multiple puppet environment ?
176 15 Romain Vrignaud
177 15 Romain Vrignaud
If Foreman don't seems to be aware of all your environment and is able to import only your "production" environment (see http://theforeman.org/issues/1159),
178 34 Christoph Witzany
try to add ":puppet_conf: /etc/puppet/puppet.conf" in your settings.yaml.
179 17 Martin Hovmöller
180 17 Martin Hovmöller
h1. Unable to connect to Hypervisor?
181 18 Martin Hovmöller
182 17 Martin Hovmöller
Make sure the user that's actually running foreman can connect to your remote hypervisor (for instance by running sudo -u foreman virsh -c qemu+ssh://root@<host>/session list).
183 19 Martin Hovmöller
184 17 Martin Hovmöller
If you are running foreman through phusion passenger, ps auxwwf | grep "R[a]ils: /usr/share/foreman" | awk '{ print $1 }' will give you the user that's running foreman. If you find that it's not being run by foreman, do the following:
185 17 Martin Hovmöller
cd ~foreman
186 17 Martin Hovmöller
chown foreman config/environment.rb
187 17 Martin Hovmöller
touch ~foreman/tmp/restart.txt
188 24 chris alfonso
189 24 chris alfonso
h1. Routing errors when running rake test?
190 24 chris alfonso
191 24 chris alfonso
Edit the config/settings.yaml and set the :login: setting to true
192 25 Ohad Levy
193 25 Ohad Levy
h1. cannot load such file -- facter / puppet (LoadError)
194 25 Ohad Levy
195 52 Dominic Cleal
If you running foreman under RVM or custom ruby installation, you would need to get facter installed as a gem (as facter packages are not in your ruby search path).
196 25 Ohad Levy
197 1 Ohad Levy
simply add another file to FOREMAN_DIR/bundler.d
198 52 Dominic Cleal
<pre>
199 52 Dominic Cleal
echo "gem 'facter'" > bundler.d/Gemfile.local.rb
200 52 Dominic Cleal
</pre>
201 52 Dominic Cleal
202 52 Dominic Cleal
h2. Pre-Foreman 1.3
203 52 Dominic Cleal
204 52 Dominic Cleal
Prior to 1.3, puppet was also a dependency, so instead use:
205 52 Dominic Cleal
206 25 Ohad Levy
<pre>
207 37 Dominic Cleal
echo "gem 'puppet'" > bundler.d/Gemfile.local.rb
208 1 Ohad Levy
</pre>
209 37 Dominic Cleal
210 37 Dominic Cleal
Edit the config/settings.yaml and add: @:puppetgem: true@
211 28 Bash Shell
212 28 Bash Shell
h1. Causes of "Error 400 Bad Request", and other smart-proxy related errors in the Foreman interface:
213 28 Bash Shell
214 29 Bash Shell
* Check the sudoers file on the proxy, if the user "foreman-proxy" can run "puppetca". The command puppetca is un-available in puppet 3.0. Workaround is to create a wrapper script.
215 29 Bash Shell
* From the cmd line, check if the user can run "puppetca" and "nsupdate" properly.
216 28 Bash Shell
* Check if Bind is listening on 127.0.0.1. The proxy connects to localhost only, so this is required. 
217 28 Bash Shell
* Check if the foreman-proxy user "foreman-proxy" can read the Bind rndc keys.
218 29 Bash Shell
* In Ubuntu, you will have to tell apparmor to allow Bind to write to zone files and journals. If your zone files are in /etc/bind/zones/, add "/etc/bind/zones/** rw," to /etc/apparmor.d/usr.sbin.named.
219 28 Bash Shell
* If using Ubuntu Libvirt, and the "Virtual Machine" tab is empty, then you most likely need to create a default storage pool:
220 28 Bash Shell
<pre>
221 28 Bash Shell
cat /etc/libvirt/storage/default.xml 
222 28 Bash Shell
<pool type='dir'>
223 28 Bash Shell
  <name>default</name>
224 28 Bash Shell
  <uuid>35e0bbce-4019-ca88-6dec-b1a0c1be774b</uuid>
225 28 Bash Shell
  <capacity>0</capacity>
226 28 Bash Shell
  <allocation>0</allocation>
227 28 Bash Shell
  <available>0</available>
228 28 Bash Shell
  <source>
229 28 Bash Shell
  </source>
230 28 Bash Shell
  <target>
231 28 Bash Shell
    <path>/var/lib/libvirt/images</path>
232 28 Bash Shell
    <permissions>
233 28 Bash Shell
      <mode>0700</mode>
234 28 Bash Shell
      <owner>-1</owner>
235 28 Bash Shell
      <group>-1</group>
236 28 Bash Shell
    </permissions>
237 28 Bash Shell
  </target>
238 28 Bash Shell
</pool>
239 28 Bash Shell
</pre>
240 28 Bash Shell
* On Ubuntu Libvirt, you may have to change /etc/libvirt/libvirtd.conf to listen on TCP.
241 31 Benjamin Papillon
242 31 Benjamin Papillon
h1. Using Webrick you get : Error 400 on SERVER: Could not find node '<node fqdn>'; cannot compile
243 31 Benjamin Papillon
244 32 Benjamin Papillon
If you are using Foreman with webrick and you get an error downloading your catalog, maybe you encouter the issue noted in bug #1507
245 31 Benjamin Papillon
Edit the node.rb script and replace the following :
246 31 Benjamin Papillon
247 31 Benjamin Papillon
<pre>
248 31 Benjamin Papillon
<br />SETTINGS = {<br /> :url => "http://<node fqdn>:3000*/*",<br />
249 31 Benjamin Papillon
</pre>
250 31 Benjamin Papillon
251 31 Benjamin Papillon
by this :
252 31 Benjamin Papillon
253 31 Benjamin Papillon
<pre>
254 31 Benjamin Papillon
<br />SETTINGS = {<br /> :url => "http://<node fqdn>:3000",<br />
255 31 Benjamin Papillon
</pre>
256 35 Charles Gomes
257 35 Charles Gomes
h1. DHCP Provisioning Fails with: "dhcpctl_connect: not found"
258 35 Charles Gomes
259 35 Charles Gomes
Depending on the version of ISC DHCP you are using a wrong key will return "dhcpctl_connect: not found" , this misleads to a connection problem.
260 35 Charles Gomes
To solve basically check if your KEY NAME matches your proxy settings.yml and also matches on your dhcpd.conf
261 38 Charles Gomes
262 38 Charles Gomes
h1. Foreman is showing : Error message: Could not find json-1.5.5 in any of the sources
263 38 Charles Gomes
264 38 Charles Gomes
If you have a problem after doing a yum update ruby bundler needs to re-run.
265 38 Charles Gomes
This could happen after an update or chane of ruby packages.
266 39 Charles Gomes
267 39 Charles Gomes
<pre>
268 38 Charles Gomes
rm ~foreman/Gemfile.lock
269 1 Ohad Levy
cd ~foreman 
270 38 Charles Gomes
bundle install --local
271 39 Charles Gomes
</pre>
272 40 Greg Sutcliffe
273 40 Greg Sutcliffe
h1. VNC console in the Foreman UI refuses to connect to my VM: Server Disconnected
274 40 Greg Sutcliffe
275 42 Greg Sutcliffe
Check what version of python you have installed - noVNC requires python2. If you have multiple python versions installed, you can edit `extras/noVNC/websockify.py` and change the shebang on line 1
276 44 Dominic Cleal
277 44 Dominic Cleal
h1. Unable to upgrade to Puppet 3.2 due to rubygem-net-ldap dependency issues
278 44 Dominic Cleal
279 44 Dominic Cleal
There are conflicting version requirements with rubygem-net-ldap between the Foreman and Puppet Labs dependency repos since Puppet 3.2.  Since Foreman 1.1, the rubygem-net-ping package is no longer required for the proxy, so first remove this and you should either be able to upgrade or remove rubygem-net-ldap altogether if there's no dependency any more.
280 45 Dominic Cleal
281 45 Dominic Cleal
h1. How do I change the FQDN of the Foreman host?
282 45 Dominic Cleal
283 45 Dominic Cleal
# Some settings in the Foreman UI use the hostname, update under More, Settings, e.g.
284 45 Dominic Cleal
#* General, foreman_url
285 45 Dominic Cleal
#* Provisioning, ssl_certificate and ssl_priv_key
286 45 Dominic Cleal
# The registered smart proxy URL if you've installed it, this can be edited via More>Configuration>Smart Proxies
287 45 Dominic Cleal
# Puppet SSL certs: generate new ones with @puppet cert generate FQDN@
288 45 Dominic Cleal
# Apache configs: update conf.d/{foreman,puppet}.conf with new SSL cert filenames, ServerName and VirtualHost IP addresses if applicable
289 45 Dominic Cleal
# Smart proxy configuration: update SSL cert filenames
290 46 Dominic Cleal
# URLs in the puppetmaster's ENC script (/etc/puppet/node.rb) and report script (foreman.rb)
291 47 Stephen Hoekstra
292 47 Stephen Hoekstra
h1. My deleted host keeps reappearing in the Hosts tab
293 47 Stephen Hoekstra
294 47 Stephen Hoekstra
After a period of time a deleted host reappears in the Host tab although the host no longer exists.  A potential reason for this could be the --push-facts cron job is pushing the facts to the Foreman and the Foreman expects the host to check in but never does.
295 47 Stephen Hoekstra
296 47 Stephen Hoekstra
To fix:
297 47 Stephen Hoekstra
<pre>
298 47 Stephen Hoekstra
rm /var/lib/puppet/yaml/facts/$hostname.yaml
299 47 Stephen Hoekstra
rm /var/lib/puppet/yaml/node/$hostname.yaml
300 47 Stephen Hoekstra
</pre>
301 48 Samarendra M Hedaoo
302 48 Samarendra M Hedaoo
h1. My node's environment is being reset to 'X' even though the puppet.conf on the host has environment = 'Y'. The Foreman settings have default_puppet_environment set as 'X' and enc_environment as False. I am using Puppet 3 on the node.
303 48 Samarendra M Hedaoo
304 48 Samarendra M Hedaoo
Foreman expects the node to specify it's own environment, if enc_environment is False. If no environment is returned by the node, it will override it with the value of default_puppet_environment. This was good till Puppet 3. But Puppet 3 no longer returns environment as a fact and hence Foreman assumes that the environment is not set.
305 49 Dominic Cleal
306 49 Dominic Cleal
h1. No A and/or PTR records are created in DNS for new hosts
307 49 Dominic Cleal
308 49 Dominic Cleal
First ensure you have a smart proxy registered with the DNS feature, with a DNS server installed and configured for the appropriate forward and reverse DNS zones.
309 49 Dominic Cleal
310 49 Dominic Cleal
In Foreman, under More, Provisioning, Domains, edit your domain, change the DNS proxy setting to the appropriate proxy server.  This will enable A records to be created for hosts built in that domain.
311 49 Dominic Cleal
312 49 Dominic Cleal
Next, under More, Provisioning, Subnets, edit your subnet, change the DNS proxy to the appropriate proxy for the reverse DNS zone.  This will cause PTR records to be added for hosts with NICs in that subnet.
313 49 Dominic Cleal
314 49 Dominic Cleal
Both parts are needed for a complete DNS setup.
315 49 Dominic Cleal
316 49 Dominic Cleal
h1. No TFTP menus or files are created for new hosts
317 49 Dominic Cleal
318 49 Dominic Cleal
This requires a proxy server registered with the TFTP feature, and a TFTP daemon running on it.  Foreman will write directly to the TFTP root directory, as configured in the proxy settings.  Do ensure the "tftp_servername" setting is also correct, this is the IP address that gets passed to the DHCP server for the @next-server@ option.
319 49 Dominic Cleal
320 49 Dominic Cleal
In Foreman, under More, Provisioning, Subnets, edit your subnet, change the TFTP proxy to the appropriate proxy server for the subnet.  This will cause hosts built in this subnet to receive a PXELinux menu for their primary MAC address.
321 50 Dominic Cleal
322 50 Dominic Cleal
h1. After Foreman 1.3 upgrade, reports and ENC fact uploads no longer work
323 50 Dominic Cleal
324 51 Lukas Zapletal
We changed how the fact and report uploads work in the 1.3 release. During 1.3 upgrade, read "release notes":http://theforeman.org/manuals/1.3/index.html#Upgradenotes and update both the report processor (foreman.rb) and ENC script (node.rb), otherwise errors will be logged in the production.log (return code 400):
325 51 Lukas Zapletal
    
326 51 Lukas Zapletal
    DEPRECATION: /reports/create is deprecated, update your report processor to POST to /api/reports
327 51 Lukas Zapletal
    See the Foreman 1.3 release notes for a new example report processor
328 51 Lukas Zapletal
329 51 Lukas Zapletal
In the release candidates, the error was:
330 50 Dominic Cleal
331 50 Dominic Cleal
    ActionController::RoutingError (No route matches [POST] "/fact_values/create")
332 50 Dominic Cleal
    ActionController::RoutingError (No route matches [POST] "/reports/create")
333 53 Lukas Zapletal
334 53 Lukas Zapletal
h1. Unprocessable Entity error during installation
335 53 Lukas Zapletal
336 53 Lukas Zapletal
Foreman installer registers proxy which is being deployed automatically. If it is, for any reason, already present but under different name, Foreman reject to register the proxy with HTTP 422 error. Proxy registration can be either turned off, or name can be changed using @--foreman-proxy-register-in-foreman@ or @--foreman-proxy-registered-name@ installer options.
337 54 Dominic Cleal
338 54 Dominic Cleal
h1. Installation errors on Puppet 3.4.x or 2.7.24
339 54 Dominic Cleal
340 54 Dominic Cleal
When using Puppet 3.4.0 or 3.4.1, installation errors will be seen and running "puppet --version" after install will show the following:
341 54 Dominic Cleal
342 54 Dominic Cleal
    Could not intialize global default settings: undefined method `mode=' for #<Puppet::Settings::AutosignSetting:0x7fa026ad44e0>
343 54 Dominic Cleal
344 58 Dominic Cleal
This is caused by Puppet bug "PUP-1015":https://tickets.puppetlabs.com/browse/PUP-1015.  On 3.4.1 and 2.7.24, additionally the /etc/puppet/manifests/site.pp file will be set to mode 0600 rather than the default 0644.  This is "PUP-1255":https://tickets.puppetlabs.com/browse/PUP-1255.
345 57 Dominic Cleal
346 58 Dominic Cleal
Puppet 3.4.2 and 2.7.25 fix both of these issues, please ensure you use these versions instead of 3.4.0/1 or 2.7.24.
347 59 Dominic Cleal
348 59 Dominic Cleal
h1. Yum fails to install foreman-installer, Requires: rubygem(rest-client)
349 59 Dominic Cleal
350 59 Dominic Cleal
If you get this error, it indicates the EPEL repository is missing:
351 59 Dominic Cleal
352 59 Dominic Cleal
    Error: Package: rubygem-foreman_api-0.1.9-1.el6.noarch (foreman)
353 59 Dominic Cleal
           Requires: rubygem(rest-client) >= 1.6.1
354 59 Dominic Cleal
355 59 Dominic Cleal
This is a requirement for the installer and Foreman.  Download and install the epel-release RPM from here: http://dl.fedoraproject.org/pub/epel/6/x86_64/repoview/epel-release.html
356 60 Lukas Zapletal
357 60 Lukas Zapletal
h1. Foreman proxy fails to start with Are the values correct in settings.yml and do permissions allow reading?: Permission denied
358 60 Lukas Zapletal
359 60 Lukas Zapletal
If you are using puppet CA see here: http://theforeman.org/manuals/latest/index.html#4.3.7SSL
360 61 Stephen Benjamin
361 61 Stephen Benjamin
h1. FreeIPA realm proxy fails with "generic preauthentication failure"
362 61 Stephen Benjamin
363 61 Stephen Benjamin
If you see error messages like this in your proxy logs:
364 61 Stephen Benjamin
 
365 61 Stephen Benjamin
    E, [2014-05-15T19:28:08.211121 #3595] ERROR -- : Failed to initialise credential cache from keytab: krb5_get_init_creds_keytab:  Generic preauthentication failure
366 61 Stephen Benjamin
    E, [2014-05-15T19:28:08.211515 #3595] ERROR -- : Failed to initailize credentials cache from keytab: krb5_get_init_creds_keytab: Generic preauthentication failure
367 61 Stephen Benjamin
    D, [2014-05-15T19:28:08.211614 #3595] DEBUG -- : /usr/share/foreman-proxy/bin/../lib/proxy/kerberos.rb:13:in `init_krb5_ccache'
368 61 Stephen Benjamin
369 61 Stephen Benjamin
You may be running a much newer version of FreeIPA than the client which provides some unknown encryption types.
370 61 Stephen Benjamin
371 61 Stephen Benjamin
Run `klist -etk /etc/foreman-proxy/freeipa.keytab` and you'll see some unnamed enryption types like this:
372 61 Stephen Benjamin
373 61 Stephen Benjamin
    1 05/14/14 21:14:17 realm-proxy@EXAMPLE.COM (etype 25)
374 61 Stephen Benjamin
    1 05/14/14 21:14:17 realm-proxy@EXAMPLE.COM (etype 26)
375 61 Stephen Benjamin
376 61 Stephen Benjamin
To fix it, delete /etc/foreman-poxy/freeipa.keytab and refetch it, specifying only the enctypes your system knows about:
377 61 Stephen Benjamin
378 61 Stephen Benjamin
    ipa-getkeytab -s ipa.example.com -p realm-proxy@EXAMPLE.COM -k /etc/foreman-proxy/freeipa.keytab --enctypes=aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96,des3-cbc-sha1,arcfour-hmac
379 62 Stephen Benjamin
380 62 Stephen Benjamin
381 62 Stephen Benjamin
h1. FreeIPA realm proxy fails with "LoadError: no such file to load -- ffi_c"
382 62 Stephen Benjamin
383 62 Stephen Benjamin
This is due to a broken rubygem-ffi that ships from Puppetlabs: https://jira-web03-dev.puppetlabs.com/browse/CPR-26
384 62 Stephen Benjamin
385 63 Stephen Benjamin
We need the EPEL one (although with the exact same version).
386 62 Stephen Benjamin
387 62 Stephen Benjamin
Ensure you have the latest (rubygem-ffi-1.0.9-11.el6.x86_64):
388 62 Stephen Benjamin
389 62 Stephen Benjamin
    yum upgrade rubygem-ffi
390 62 Stephen Benjamin
391 62 Stephen Benjamin
Now downgrade, but disable the puppetlabs-dependecies repo so we grab the package from EPEL:
392 62 Stephen Benjamin
393 62 Stephen Benjamin
    yum downgrade --disablerepo=puppetlabs-dependencies rubygem-ffi-1.0.9-9.el6
394 62 Stephen Benjamin
395 62 Stephen Benjamin
Restart the proxy.
396 65 Lukas Zapletal
397 65 Lukas Zapletal
h1. How to log REST client calls
398 65 Lukas Zapletal
399 65 Lukas Zapletal
Sometimes it is useful to see content of calls that are being made by Foreman using rest-client library (compute resources, proxy communication etc). This is as easy as dropping the following file and restarting Foreman:
400 65 Lukas Zapletal
401 65 Lukas Zapletal
<pre>
402 65 Lukas Zapletal
$ cat >/usr/share/foreman/config/initializers/00_rest_client.rb <<'EOT'
403 65 Lukas Zapletal
require 'rest_client'
404 65 Lukas Zapletal
RestClient.log =
405 65 Lukas Zapletal
  Object.new.tap do |proxy|
406 65 Lukas Zapletal
    def proxy.<<(message)
407 65 Lukas Zapletal
      Rails.logger.info message
408 65 Lukas Zapletal
    end
409 65 Lukas Zapletal
  end
410 65 Lukas Zapletal
EOT
411 65 Lukas Zapletal
</pre>
412 66 Fergus Nelson
413 66 Fergus Nelson
h1. I'm getting connection timeouts when Foreman tries to connect to ec2 when running behind a http proxy
414 66 Fergus Nelson
415 66 Fergus Nelson
The error can look like this.
416 66 Fergus Nelson
<pre>
417 66 Fergus Nelson
<div id="backtrace" class="alert alert-block alert-danger base in fade hide">
418 66 Fergus Nelson
  <em>Excon::Errors::Timeout</em><br>
419 66 Fergus Nelson
  <strong>connect timeout reached</strong><br>
420 66 Fergus Nelson
  app/models/compute_resources/foreman/model/ec2.rb:59:in `regions'
421 66 Fergus Nelson
<br>app/models/compute_resources/foreman/model/ec2.rb:72:in `test_connection'
422 66 Fergus Nelson
<br>app/models/compute_resource.rb:120:in `new_vm'
423 66 Fergus Nelson
<br>app/views/hosts/_compute.html.erb:1:in `_app_views_hosts__compute_html_erb__2073528223_70084372690700'
424 66 Fergus Nelson
<br>app/controllers/hosts_controller.rb:139:in `compute_resource_selected'
425 66 Fergus Nelson
<br>app/models/taxonomy.rb:48:in `as_taxonomy'<br>app/models/concerns/foreman/thread_session.rb:143:in `as_location'
426 66 Fergus Nelson
<br>app/models/taxonomy.rb:47:in `as_taxonomy'<br>app/models/concerns/foreman/thread_session.rb:108:in `as_org'<br>app/models/taxonomy.rb:46:in `as_taxonomy'
427 66 Fergus Nelson
<br>app/controllers/hosts_controller.rb:135:in `compute_resource_selected'<br>app/models/concerns/foreman/thread_session.rb:33:in `clear_thread'
428 66 Fergus Nelson
<br>lib/middleware/catch_json_parse_errors.rb:9:in `call'
429 66 Fergus Nelson
</div>
430 66 Fergus Nelson
<p><a href="/" data-id="aid_not_defined">Back</a></p>
431 66 Fergus Nelson
</pre>
432 66 Fergus Nelson
433 66 Fergus Nelson
The problem is that fog isn't picking up your environment's proxy settings, so the solution is for apache to pass them to it. Edit /etc/apache2/envvars to include the following
434 66 Fergus Nelson
435 66 Fergus Nelson
export http_proxy=http://<host>:<port>
436 66 Fergus Nelson
export https_proxy=https://<host>:<port>
437 66 Fergus Nelson
438 66 Fergus Nelson
Restart apache.