Katello on Existing Foreman » History » Version 10
Stephen Benjamin, 05/18/2015 06:41 AM
1 | 1 | Stephen Benjamin | h1. Katello on Existing Foreman |
---|---|---|---|
2 | |||
3 | h2. Summary |
||
4 | |||
5 | Goals: |
||
6 | # I am a user and I want to install Katello on my existing production Foreman. |
||
7 | |||
8 | 10 | Stephen Benjamin | |
9 | 1 | Stephen Benjamin | h2. Targeted Release |
10 | |||
11 | 2 | Stephen Benjamin | TBD |
12 | 1 | Stephen Benjamin | |
13 | h2. Targeted Persona |
||
14 | |||
15 | [[Personas-SystemEngineer| Samuel - System Engineer]] - production Foreman |
||
16 | [[Personas-Developer| Daniel - Developer]] - development environment |
||
17 | |||
18 | 10 | Stephen Benjamin | h2. Design Requirements |
19 | 2 | Stephen Benjamin | |
20 | Based on https://groups.google.com/forum/#!searchin/foreman-dev/katello$20on/foreman-dev/rMc1rWJMmBg/gTjEDJuD_a0J |
||
21 | 1 | Stephen Benjamin | |
22 | 10 | Stephen Benjamin | h3. Installer |
23 | 1 | Stephen Benjamin | |
24 | 10 | Stephen Benjamin | katello-installer is a separate independent installer. As part of this effort, it will need to move to be a plugin of foreman-installer itself, that can be installed at a later point in time. katello-installer will provide scenarios for katello and a katello proxy (capsule). Scenarios will be able to both change the default settings of foreman's answers (taxonomies on, certificates, etc), but also provide its own additional top-level modules. |
25 | 1 | Stephen Benjamin | |
26 | 10 | Stephen Benjamin | Scenario Tracker http://projects.theforeman.org/issues/10161 |
27 | 7 | Stephen Benjamin | |
28 | 6 | Stephen Benjamin | |
29 | 10 | Stephen Benjamin | > !plugins2.png! |
30 | 6 | Stephen Benjamin | |
31 | 10 | Stephen Benjamin | In order to do this, puppet-foreman_proxy needs to be moved to the top level of the installer, puppet-capsule largely stripped and renamed to indicate its new content-specific purpose (if not able to integrate into puppet-foreman_proxy itself). |
32 | 1 | Stephen Benjamin | |
33 | |||
34 | 10 | Stephen Benjamin | h3. Certificates |
35 | 1 | Stephen Benjamin | |
36 | 10 | Stephen Benjamin | Katello requires a number of certificates in order to deploy all of the services that are involved. For a summary of all the certs that are used and deployed see https://github.com/Katello/puppet-certs#certificates-overview. In order for us to install the Katello plugin alongside an existing Foreman installation, we will need to support deploying certs for new services, create new CA's (i.e. candlepin), while not breaking the existing Foreman infrastructure. |
37 | 1 | Stephen Benjamin | |
38 | 10 | Stephen Benjamin | In order to accomplish this, we will abandon the current katello-certs-tool and puppet-certs, in favor of a puppet-openssl module. Optionally, the katello and candlepin CA's can be issued by an existing CA (such as the Puppet CA), keeping the foreman infrastructure intact and functioning. |
39 | 1 | Stephen Benjamin | |
40 | 10 | Stephen Benjamin | h3. Backends |
41 | 1 | Stephen Benjamin | |
42 | 10 | Stephen Benjamin | Katello has three main backends that store data: Pulp, Candlepin and Elasticsearch. Some Katello objects have corresponding objects in one or all backends. |
43 | 1 | Stephen Benjamin | |
44 | 10 | Stephen Benjamin | # Foremans will need to have Organizations and Locations enabled and an initial one created (done with the scenario) |
45 | # Existing Organizations need to be created in Candlepin |
||
46 | # Users will need to be created in Pulp, and the anonymous_admin and anonymous_api_admin will need to have the correct remote_id to correspond to the Pulp admin user. |
||
47 | 1 | Stephen Benjamin | |
48 | 10 | Stephen Benjamin | h3. Databases |
49 | 1 | Stephen Benjamin | |
50 | 10 | Stephen Benjamin | Katello currently only tests and supports Postgres. |
51 | 1 | Stephen Benjamin | |
52 | 10 | Stephen Benjamin | Requirements: |
53 | 1 | Stephen Benjamin | |
54 | 10 | Stephen Benjamin | # Support MySQL |
55 | 1 | Stephen Benjamin | |
56 | 10 | Stephen Benjamin | _It looks like it should be possible, we'd also need to add MySQL to our testing in Jenkins, and support in the installer. Currently the migration fails with errors like this, so we will need modifications:_ |
57 | 1 | Stephen Benjamin | |
58 | 10 | Stephen Benjamin | <pre> |
59 | Mysql2::Error: Error on rename of './katello/#sql-a3a_13' to './katello/katello_content_view_filters_repositories' (errno: 150): ALTER TABLE `katello_content_view_filters_repositories` CHANGE `filter_id` `content_view_filter_id` int(11) DEFAULT NULL/home/stbenjam/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.21/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `query' |
||
60 | </pre> |
||
61 | 1 | Stephen Benjamin | |
62 | 10 | Stephen Benjamin | # What about Candlepin? |
63 | _Theoretically supports MySQL_ |
||
64 | 1 | Stephen Benjamin | |
65 | |||
66 | 10 | Stephen Benjamin | h3. Capsules |
67 | |||
68 | 1 | Stephen Benjamin | Katello deploys Capsules which includes deploying the following: |
69 | |||
70 | * Smart Proxy |
||
71 | * Pulp Node or Pulp Master |
||
72 | * Certs |
||
73 | * Qpid |
||
74 | * Puppet Master |
||
75 | |||
76 | 10 | Stephen Benjamin | Capsules upstream should just become Foreman Smart Proxies. This means moving Foreman Proxy module to the top level, and either integrating existing Katello functions into plugins for the puppet-foreman_proxy module, or providing it externally through our own content-specific module (stripped down version of the existing capsule module). |
77 | 1 | Stephen Benjamin | |
78 | 10 | Stephen Benjamin | |
79 | 3 | Stephen Benjamin | h2. Documentation |
80 | |||
81 | 1 | Stephen Benjamin | h3. Bugs/RFE |
82 | |||
83 | * Tracker http://projects.theforeman.org/issues/7605 |