Project

General

Profile

Installation instructions » History » Version 45

Paul Kelly, 05/12/2011 03:28 AM

1 8 Ohad Levy
{{toc}}
2 1 Ohad Levy
3 38 Paul Kelly
h1. Requirements for the foreman core component
4 8 Ohad Levy
5 1 Ohad Levy
before you start, make sure you have:
6 1 Ohad Levy
7 1 Ohad Levy
* Puppet >= 0.24-4
8 1 Ohad Levy
* rake >= 0.84 
9 8 Ohad Levy
* rubygems
10 8 Ohad Levy
* ruby-sqlite3 (libsqlite3-ruby) if you are going to use sqlite as your database
11 8 Ohad Levy
* git (if installing from source )
12 1 Ohad Levy
13 44 Jochen Schalanda
The installation has been successfully tested on RHEL[5,6], Fedora[13,14], Debian Linux 5.0 (Lenny) and 6.0 (Squeeze) and Ubuntu Linux 10.04, 10.10, and 11.04. For older operating systems you might need additional packages (e.g. sqlite).
14 44 Jochen Schalanda
15 34 Ohad Levy
It is also known to work on Solaris and Mac.
16 1 Ohad Levy
17 8 Ohad Levy
h1. Download
18 1 Ohad Levy
19 13 Ohad Levy
h2. Puppet Module ready to use
20 13 Ohad Levy
21 13 Ohad Levy
You may try out the puppet Foreman module, this should take care for most of the basic setup.
22 13 Ohad Levy
23 25 Ohad Levy
The module could be downloaded via: http://github.com/ohadlevy/puppet-foreman/tarball/master
24 1 Ohad Levy
25 1 Ohad Levy
you may use puppet (if you don't want to add it as a module to your puppetmaster) in the following way:
26 1 Ohad Levy
27 32 Ohad Levy
if you are using RHEL, EPEL repo must be enabled http://fedoraproject.org/wiki/EPEL
28 1 Ohad Levy
29 25 Ohad Levy
If you are using puppet store configs please set $using_store_configs to true in foreman/manifests/init.pp.
30 25 Ohad Levy
If you want this module to configure passenger as well, set $using_passenger to true in foreman/manifests/init.pp
31 21 Ohad Levy
32 25 Ohad Levy
usage:
33 25 Ohad Levy
34 21 Ohad Levy
<pre>
35 35 Andrew Niemantsverdriet
echo include foreman | puppet  --verbose --modulepath /path_to/extracted_tarball
36 21 Ohad Levy
</pre>
37 21 Ohad Levy
38 13 Ohad Levy
*Its recommend to review the module prior usage.*
39 13 Ohad Levy
40 31 Jochen Schalanda
h2. Debian / Ubuntu Packages
41 29 Ohad Levy
42 43 Jochen Schalanda
The Foreman packages should work on the following Debian-based Linux distributions:
43 1 Ohad Levy
44 43 Jochen Schalanda
* Debian Linux 5.0 (Lenny), see [[Installation_instructions#Debian-Linux-50-Lenny]]
45 43 Jochen Schalanda
* Debian Linux 6.0 (Squeeze)
46 43 Jochen Schalanda
* Ubuntu Linux 10.04 LTS (Lucid Lynx)
47 43 Jochen Schalanda
* Ubuntu Linux 10.10 (Maverick Meerkat)
48 43 Jochen Schalanda
* Ubuntu Linux 11.04 (Natty Narwhal)
49 43 Jochen Schalanda
50 43 Jochen Schalanda
If you encounter any errors during the installation, please file a bug report!
51 43 Jochen Schalanda
52 43 Jochen Schalanda
53 43 Jochen Schalanda
Add one of the following lines to your @/etc/apt/sources.list@ (alternatively in a separate file in @/etc/apt/sources.list.d/@):
54 43 Jochen Schalanda
55 31 Jochen Schalanda
<pre>
56 31 Jochen Schalanda
# For stable packages
57 31 Jochen Schalanda
deb http://deb.theforeman.org/ stable main
58 31 Jochen Schalanda
59 31 Jochen Schalanda
# For testing packages
60 31 Jochen Schalanda
deb http://deb.theforeman.org/ testing main
61 31 Jochen Schalanda
</pre>
62 31 Jochen Schalanda
63 31 Jochen Schalanda
The public key for "secure APT":http://wiki.debian.org/SecureApt can be downloaded "here":http://deb.theforeman.org/foreman.asc
64 31 Jochen Schalanda
65 1 Ohad Levy
You can add this key with
66 31 Jochen Schalanda
<pre>
67 43 Jochen Schalanda
apt-key add foreman.asc
68 31 Jochen Schalanda
</pre>
69 1 Ohad Levy
70 31 Jochen Schalanda
or combine downloading and registering:
71 31 Jochen Schalanda
<pre>
72 43 Jochen Schalanda
wget -q http://deb.theforeman.org/foreman.asc -O- | apt-key add -
73 31 Jochen Schalanda
</pre>
74 31 Jochen Schalanda
75 31 Jochen Schalanda
The key fingerprint is
76 31 Jochen Schalanda
<pre>
77 31 Jochen Schalanda
1DCB 15D1 2CA1 40EE F494  7E57 66CF 053F E775 FF07
78 31 Jochen Schalanda
Foreman Archive Signing Key <packages@theforeman.org>
79 31 Jochen Schalanda
</pre>
80 31 Jochen Schalanda
81 31 Jochen Schalanda
To install Foreman, run
82 31 Jochen Schalanda
83 1 Ohad Levy
<pre>
84 31 Jochen Schalanda
sudo apt-get update
85 31 Jochen Schalanda
86 31 Jochen Schalanda
# Depending on the database you want to use with Foreman,
87 43 Jochen Schalanda
# install one of these meta-packages:
88 1 Ohad Levy
sudo apt-get install foreman-mysql
89 1 Ohad Levy
sudo apt-get install foreman-pgsql
90 1 Ohad Levy
sudo apt-get install foreman-sqlite3
91 43 Jochen Schalanda
92 43 Jochen Schalanda
# or install the foreman main package and configure the
93 43 Jochen Schalanda
# database manually in /etc/foreman/database.yml
94 43 Jochen Schalanda
sudo apt-get install foreman
95 1 Ohad Levy
</pre>
96 31 Jochen Schalanda
97 43 Jochen Schalanda
The only purpose of the meta-packages @foreman-mysql@, @foreman-pgsql@, and @foreman-sqlite3@ is to pull in any dependencies on the respective database system during the package installation. If you don't want to run the Foreman database on the same host, please use the @foreman@ package and configure the database settings in @/etc/foreman/database.yml@. You cannot use @dbconfig-common@ in this case.
98 43 Jochen Schalanda
99 43 Jochen Schalanda
100 36 Jochen Schalanda
h3. Debian Linux 5.0 (Lenny)
101 36 Jochen Schalanda
102 43 Jochen Schalanda
Users of Debian Lenny will have to install "rake":http://packages.debian.org/lenny-backports/rake and "libsinatra-ruby":http://packages.debian.org/lenny-backports/libsinatra-ruby from @lenny-backports@.
103 36 Jochen Schalanda
104 36 Jochen Schalanda
See http://backports.debian.org/Instructions/ for instructions on how to add @lenny-backports@ to your list of repositories and install a package from it.
105 36 Jochen Schalanda
106 1 Ohad Levy
107 23 Ohad Levy
h2. RPM
108 23 Ohad Levy
109 32 Ohad Levy
We maintain a repository for RHEL and Fedora (and clones) - you may add it via:
110 23 Ohad Levy
111 23 Ohad Levy
h3. Puppet 
112 1 Ohad Levy
113 23 Ohad Levy
<pre>
114 23 Ohad Levy
yumrepo { 'foreman':
115 23 Ohad Levy
    descr => 'Foreman Repo',
116 32 Ohad Levy
    baseurl => 'http://yum.theforeman.org/stable',
117 23 Ohad Levy
    gpgcheck => '0',
118 23 Ohad Levy
    enabled => '1'
119 23 Ohad Levy
}
120 23 Ohad Levy
</pre>
121 23 Ohad Levy
122 23 Ohad Levy
h3. Quick and dirty
123 1 Ohad Levy
124 23 Ohad Levy
<pre>
125 23 Ohad Levy
cat > /etc/yum.repos.d/foreman.repo << EOF
126 23 Ohad Levy
[foreman]
127 23 Ohad Levy
name=Foreman Repo
128 32 Ohad Levy
baseurl=http://yum.theforeman.org/stable
129 23 Ohad Levy
gpgcheck=0
130 1 Ohad Levy
enabled=1
131 23 Ohad Levy
EOF
132 23 Ohad Levy
</pre>
133 23 Ohad Levy
134 1 Ohad Levy
<pre>
135 1 Ohad Levy
yum install foreman
136 23 Ohad Levy
</pre>
137 23 Ohad Levy
138 23 Ohad Levy
139 30 Ohad Levy
if you just want to get the rpms:
140 23 Ohad Levy
141 32 Ohad Levy
http://yum.theforeman.org
142 32 Ohad Levy
143 23 Ohad Levy
144 8 Ohad Levy
h2. Latest stable release
145 7 Ohad Levy
146 30 Ohad Levy
Latest stable version can be found under the files section
147 19 Ohad Levy
148 8 Ohad Levy
h2. Latest source code
149 7 Ohad Levy
150 7 Ohad Levy
You can get the latest source code of Foreman from the git repository hosted at github.
151 7 Ohad Levy
This is the preferred way to get Foreman if you want to benefit from the latest improvements. By using the git repository you can also upgrade more easily.
152 7 Ohad Levy
153 41 Ohad Levy
to get latest "development" version do:
154 1 Ohad Levy
155 4 Ohad Levy
<pre><code>git clone git://github.com/ohadlevy/foreman.git foreman
156 4 Ohad Levy
cd foreman
157 1 Ohad Levy
git submodule init
158 1 Ohad Levy
git submodule update
159 1 Ohad Levy
</code></pre>
160 1 Ohad Levy
161 1 Ohad Levy
* if you are behind a proxy or firewall and dont have access to github using the git protocol, use http protocol instead (e.g.)
162 5 Rama Krishna
<pre>
163 5 Rama Krishna
git clone http://github.com/ohadlevy/foreman.git foreman
164 5 Rama Krishna
cd foreman
165 1 Ohad Levy
sed -i 's/git:\/\//http:\/\//g' .gitmodules
166 1 Ohad Levy
git submodule init
167 5 Rama Krishna
git submodule update
168 5 Rama Krishna
</pre>
169 5 Rama Krishna
170 12 Ohad Levy
h3. Daily snapshot
171 12 Ohad Levy
172 12 Ohad Levy
You can also fetch the latest daily snapshot of the development version at:
173 28 Ohad Levy
http://theforeman.org/foreman-nightly.tar.bz2
174 12 Ohad Levy
175 3 Ohad Levy
176 8 Ohad Levy
h1. Initial setup
177 1 Ohad Levy
178 8 Ohad Levy
h2. Database
179 6 Ohad Levy
180 6 Ohad Levy
Foreman uses a database, this database can be shared with Puppet store-configs (they are compatible, as Foreman extends the puppet database schema).
181 14 Ohad Levy
By default, SQLite is used, if you want to use other database (e.g. [[FAQ#I-want-to-use-MySQL|MySQL]]) please modify the configuration file under +config/database.yml+.
182 1 Ohad Levy
183 6 Ohad Levy
If you want to share the database with Puppets (storeconfig), just modify +config/database.yml+ to point to the same database configuration as puppet is.
184 6 Ohad Levy
185 1 Ohad Levy
In both cases, please use the *production* settings.
186 6 Ohad Levy
187 1 Ohad Levy
to initialize the database schema type:
188 11 Ohad Levy
<pre>
189 11 Ohad Levy
RAILS_ENV=production rake db:migrate
190 11 Ohad Levy
</pre>
191 6 Ohad Levy
192 8 Ohad Levy
h2. Import Data from Puppet
193 6 Ohad Levy
194 6 Ohad Levy
At this point, you might want to go through the [[FAQ]] to see how can you import your data into Foreman.
195 6 Ohad Levy
196 8 Ohad Levy
h2. Start The Web Server
197 6 Ohad Levy
198 26 Ohad Levy
if you installed via rpm, just start the foreman service, or start the built in web server by typing:
199 1 Ohad Levy
<code>./script/server -e production</code>
200 1 Ohad Levy
201 6 Ohad Levy
and point your browser to http://foreman:3000
202 1 Ohad Levy
203 26 Ohad Levy
If you would like to keep the server running, its recommend to setup passenger or use the RPM.
204 1 Ohad Levy
example usage with passenger can be found here: http://github.com/ohadlevy/puppet-foreman/blob/master/foreman/templates/foreman-vhost.conf.erb
205 38 Paul Kelly
206 45 Paul Kelly
h2. Install Solaris jumpstart files
207 45 Paul Kelly
208 45 Paul Kelly
The Solaris jumpstart process is occurs in two phases; a diskless client is first booted and then in phase two, the host mounts its build media and configuration files from an NFS location and proceeds with the build. Foreman provides a skeleton configuration directory structure suitable for NFS mounting on the host. In this structure are files that are customised to forward configuration requests to the Foreman instance. This directory tree, located at .../foreman/extra/jumpstart, should be NFS shared to the subnet that contains any potential Solaris clients. Some customization of this directory tree will be required. See [[Solaris_jumpstart_directory]]
209 45 Paul Kelly
210 38 Paul Kelly
h1. Smart proxy installation
211 38 Paul Kelly
212 38 Paul Kelly
A smart proxy is an autonomous web-based foreman component that is placed on a host performing a specific function in the host commissioning phase. 
213 1 Ohad Levy
It receives requests from Foreman to perform operations that are required during the commissioning process and executes them on its behalf. More details can be found on the [[Foreman Architecture]] page.
214 1 Ohad Levy
215 42 Ohad Levy
To fully manage the commissioning process then a smart proxy will have to manipulate these services, DHCP, DNS, Puppet CA, Puppet and TFTP. These services may exist on separate machines or several of them may be hosted on the same machine. As each smart proxy instance is capable of managing all the of these services, there is only need for one proxy per host.
216 39 Paul Kelly
In the special case of a smart proxy managing a windows DHCP server, the host machine must be running Windows and support the *netsh dhcp* utility, it does not need to be the Microsoft DHCP server itself.
217 42 Ohad Levy
218 42 Ohad Levy
see [[Smart-Proxy:Installation_instructions]]
219 39 Paul Kelly
220 39 Paul Kelly
h2. Download
221 39 Paul Kelly
222 39 Paul Kelly
Download the smart proxy code from
223 39 Paul Kelly
* the git repository 
224 39 Paul Kelly
* the rpm location
225 40 Paul Kelly
* this zip file. 
226 39 Paul Kelly
227 39 Paul Kelly
When downloaded, extract into a suitable location and follow the README file.
228 1 Ohad Levy
229 8 Ohad Levy
h1. Future Updates
230 1 Ohad Levy
231 9 Ohad Levy
see [[Upgrade instructions]]
232 1 Ohad Levy
233 9 Ohad Levy
h1. Problems?
234 9 Ohad Levy
235 9 Ohad Levy
see [[Troubleshooting]]