-
Language:
English
-
Language:
English
6.3. Configuring a Complete Environment
The following is an example configuration for a complete OpenShift Enterprise deployment consisting of:
- One host with the
nameserverrole. - Two hosts with the
brokerrole. - Two hosts with the
msgserverrole. - Three hosts with the
datastorerole. - Multiple hosts with the
noderole.
This example uses a common set of variables to ensure that parameters between different roles match up properly. This example is also appropriate for deploying on Infrastructure-as-a-Service (IaaS) environments where public and private routing is in use; applications are made available via their public IP addresses by making use of the
ec2_public_ipv4 fact.
Recommended Order of Deployment:
- Name server host.
- Message server hosts.
- Datastore hosts, ensuring the primary host is fully deployed before adding additional nodes to your replica set.
- Broker hosts.
- Node hosts.
Common Variables for This Example
$bind_key = 'oZmVeXEiAi3foJ5GPG/11aaliaw1Wm7hccODfqBDfKRluO8bUfHK08mFMxpBnSW2bNJb+567Mc2sOwWyg7a1AA==' $broker_virtual_hostname = 'ose-broker.example.com' $install_method = 'none' $mongodb_replicasets = true $mongodb_replicasets_members = ["ose-mongo01.example.com:27017","ose-mongo02.example.com:27017","ose-mongo03.example.com:27017"] $msgserver_cluster = true $msgserver_cluster_members = ["ose-amq01.example.com","ose-amq02.example.com"] $nameserver_ip_addr = '10.3.8.18' $nameserver_hostname = 'ose-ns01.example.com' $ose_version = '2.2' $register_host_with_nameserver = true
Example 6.10. Name Server Configuration
node /^ose-ns/ {
class { 'openshift_origin':
roles => ['nameserver'],
bind_key => $bind_key,
install_method => $install_method,
nameserver_ip_addr => $nameserver_ip_addr,
nameserver_hostname => $nameserver_hostname,
ose_version => $ose_version,
register_host_with_nameserver => $register_host_with_nameserver,
}
}
Example 6.11. Message Server Configuration (ActiveMQ)
node /^ose-amq/ {
class { 'openshift_origin':
roles => ['msgserver'],
msgserver_cluster => $msgserver_cluster,
msgserver_cluster_members => $msgserver_cluster_members,
msgserver_hostname => $::fqdn,
msgserver_routing => $msgserver_routing,
msgserver_routing_password => $msgserver_routing_password,
# all node classes get these params
bind_key => $bind_key,
install_method => $install_method,
nameserver_ip_addr => $nameserver_ip_addr,
nameserver_hostname => $nameserver_hostname,
ose_version => $ose_version,
register_host_with_nameserver => $register_host_with_nameserver,
}
}
Example 6.12. Datastore Configuration
This assumes that you are naming your primary
datastore node ose-mongo01.example.com.
node /^ose-mongo/ {
class { 'openshift_origin':
roles => ['datastore'],
datastore1_ip_addr => '10.3.9.214',
datastore2_ip_addr => '10.3.9.219',
datastore3_ip_addr => '10.3.9.221',
mongodb_replica_primary_ip_addr => '10.3.9.214',
mongodb_replicasets => $mongodb_replicasets,
mongodb_replicasets_members => $mongodb_replicasets_members,
mongodb_replica_primary => $::fqdn ? {
'ose-mongo01.example.com' => true,
default => false,
},
datastore_hostname => $::fqdn,
# all node classes get these params
bind_key => $bind_key,
install_method => $install_method,
nameserver_ip_addr => $nameserver_ip_addr,
nameserver_hostname => $nameserver_hostname,
ose_version => $ose_version,
register_host_with_nameserver => $register_host_with_nameserver,
}
}Example 6.13. Node Configuration
You must have one set of configuration options per district. This registers the
node_ip_address using the public IP address so that all applications on these gears are publicly accessible.
node /^ose-small-node/ {
class { 'openshift_origin':
roles => ['node'],
broker_hostname => $::fqdn,
node_hostname => $::fqdn,
node_ip_addr => $::ec2_public_ipv4,
node_frontend_plugins => ["apache-mod-rewrite","nodejs-websocket"],
install_cartridges => ["cron","diy","haproxy","mongodb","nodejs","perl","php","postgresql","python","ruby","jenkins","jenkins-client","mysql"],
msgserver_cluster => $msgserver_cluster,
msgserver_cluster_members => $msgserver_cluster_members,
# all node classes get these params
bind_key => $bind_key,
install_method => $install_method,
nameserver_ip_addr => $nameserver_ip_addr,
nameserver_hostname => $nameserver_hostname,
ose_version => $ose_version,
register_host_with_nameserver => $register_host_with_nameserver,
}
}Example 6.14. Broker Configuration
node /^ose-broker/ {
class { 'openshift_origin':
roles => ['broker'],
broker_cluster_members => ["ose-broker01.example.com", "ose-broker02.example.com"],
broker_hostname => $::fqdn,
broker_virtual_hostname => $broker_virtual_hostname,
msgserver_cluster => $msgserver_cluster,
msgserver_cluster_members => $msgserver_cluster_members,
conf_broker_session_secret => 'secret',
conf_console_session_secret => 'secret',
mongodb_replicasets => $mongodb_replicasets,
mongodb_replicasets_members => $mongodb_replicasets_members,
# all node classes get these params
bind_key => $bind_key,
install_method => $install_method,
nameserver_ip_addr => $nameserver_ip_addr,
nameserver_hostname => $nameserver_hostname,
ose_version => $ose_version,
register_host_with_nameserver => $register_host_with_nameserver,
}
}