From 9ca31562fdc24dbede3f26e9af26c9ff2e68ac63 Mon Sep 17 00:00:00 2001 From: manashkin Date: Tue, 12 Mar 2013 15:48:22 +0400 Subject: [PATCH] Update documentation --- .../0010-creating-fuel-pm-from-scratch.rst | 3 +- .../0020-machines.rst | 11 +- ...0-installing-configuring-puppet-master.rst | 4 +- .../0050-installing-configuring-cobbler.rst | 6 +- .../0060-deploying-openstack.rst | 198 +++++++++++------- .../0010-introduction.rst | 4 +- .../0015-sizing-hardware.rst | 158 +++++++++++++- .../0030-large-deployments.rst | 34 ++- .../cobbler-puppet-ha.png | Bin 0 -> 85040 bytes .../reference-architecture/0010-overview.rst | 19 +- .../0020-logical-setup.rst | 1 + 11 files changed, 338 insertions(+), 100 deletions(-) create mode 100644 docs/pages/production-considerations/cobbler-puppet-ha.png diff --git a/docs/pages/creating-fuel-pm/0010-creating-fuel-pm-from-scratch.rst b/docs/pages/creating-fuel-pm/0010-creating-fuel-pm-from-scratch.rst index 9171d3b6b3..53dec030eb 100644 --- a/docs/pages/creating-fuel-pm/0010-creating-fuel-pm-from-scratch.rst +++ b/docs/pages/creating-fuel-pm/0010-creating-fuel-pm-from-scratch.rst @@ -171,7 +171,8 @@ OS Installation ``vi/etc/yum.repos.d/puppet.repo``:: - [puppetlabs] name=Puppet Labs Packages + [puppetlabs] + name=Puppet Labs Packages baseurl=http://yum.puppetlabs.com/el/$releasever/products/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs diff --git a/docs/pages/installation-instructions/0020-machines.rst b/docs/pages/installation-instructions/0020-machines.rst index b0a35febee..14e722080c 100644 --- a/docs/pages/installation-instructions/0020-machines.rst +++ b/docs/pages/installation-instructions/0020-machines.rst @@ -15,7 +15,7 @@ You can download the latest release of Fuel here: [LINK HERE] -Additionally, you can download a pre-built Puppet Master/Cobbler ISO, +Alternatively, you can download a pre-built Puppet Master/Cobbler ISO, which will cut down the amount of time you'll need to spend getting Fuel up and running. You can download the ISO here: @@ -28,14 +28,9 @@ Hardware for a virtual installation For a virtual installation, you need only a single machine. You can get by on 8GB of RAM, but 16GB will be better. To actually perform the installation, you need a way to create Virtual Machines. This guide -assumes that you are using the latest version of VirtualBox (currently -4.2.6), which you can download from - - - -`https://www.virtualbox.org/wiki/Downloads` - +assumes that you are using version 4.2.6 of VirtualBox, which you can download from +https://www.virtualbox.org/wiki/Downloads You'll need to run VirtualBox on a stable host system. Mac OS 10.7.x, CentOS 6.3, or Ubuntu 12.04 are preferred; results in other operating diff --git a/docs/pages/installation-instructions/0040-installing-configuring-puppet-master.rst b/docs/pages/installation-instructions/0040-installing-configuring-puppet-master.rst index be993f5662..f7ec20f92d 100644 --- a/docs/pages/installation-instructions/0040-installing-configuring-puppet-master.rst +++ b/docs/pages/installation-instructions/0040-installing-configuring-puppet-master.rst @@ -131,7 +131,7 @@ hostonly adapters exist and are configured correctly: After creating these interfaces, reboot VirtualBox to make sure that -DHCP isnt running in the background. +DHCP isn't running in the background. @@ -158,7 +158,7 @@ sure that you can boot your server from the DVD or USB drive. Once you've booted Creating fuel-pm on a Virtual Machine ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The process of creating a virtual machine in VirtualBox depends on +The process of creating a virtual machine to host Fuel in VirtualBox depends on whether your deployment is purely virtual or consists of a virtual fuel-pm controlling physical hardware. If your deployment is purely virtual then Adapter 2 should be a Hostonly adapter attached to diff --git a/docs/pages/installation-instructions/0050-installing-configuring-cobbler.rst b/docs/pages/installation-instructions/0050-installing-configuring-cobbler.rst index 1b195a9fe1..750daf000a 100644 --- a/docs/pages/installation-instructions/0050-installing-configuring-cobbler.rst +++ b/docs/pages/installation-instructions/0050-installing-configuring-cobbler.rst @@ -108,12 +108,12 @@ Change the $domain_name to your own domain name. :: $cobbler_password = 'cobbler' $pxetimeout = '0' - # Predefined mirror type to use: internal or external (should be removed soon) - $mirror_type = 'external' + # Predefined mirror type to use: custom or default (should be removed soon) + $mirror_type = 'default' -Change the $mirror_type to be external so Fuel knows to request +Change the $mirror_type to be default so Fuel knows to request resources from Internet sources rather than having to set up your own internal repositories. diff --git a/docs/pages/installation-instructions/0060-deploying-openstack.rst b/docs/pages/installation-instructions/0060-deploying-openstack.rst index c1049609e7..27eaa0f404 100644 --- a/docs/pages/installation-instructions/0060-deploying-openstack.rst +++ b/docs/pages/installation-instructions/0060-deploying-openstack.rst @@ -21,7 +21,7 @@ Puppet Master:: - cp /etc/puppet/modules/openstack/examples/site_openstack_swift_compact.pp /etc/puppet/manifests/site.pp + cp /etc/puppet/modules/openstack/examples/site_openstack_ha_compact.pp /etc/puppet/manifests/site.pp @@ -343,6 +343,115 @@ The default value is loopback, which tells Swift to use a loopback storage devic ... +Configuring OpenStack to use syslog +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To use the syslog server, adjust the corresponding variables in the "if $use_syslog" clause:: + + $use_syslog = true + if $use_syslog { + class { "::rsyslog::client": + log_local => true, + log_auth_local => true, + server => '127.0.0.1', + port => '514' + } + } + +For remote logging: + + server => + + port => + +For local logging: + + set log_local and log_auth_local to true + + +Setting the mirror type +^^^^^^^^^^^^^^^^^^^^^^^ + + + + +To tell Fuel to download packages from external repos provided by Mirantis and your distribution vendors, set the $mirror_type variable to "default":: + + + ... + # If you want to set up a local repository, you will need to manually adjust mirantis_repos.pp, + # though it is NOT recommended. + $mirror_type = 'default' + $enable_test_repo = false + ... + +Future versions of Fuel will enable you to use your own internal repositories. + +Configuring Rate-Limits +^^^^^^^^^^^^^^^^^^^^^^^ + +Openstack has predefined limits on different HTTP queries for nova-compute and cinder services. Sometimes (e.g. for big clouds or test scenarios) these limits are too strict. (See http://docs.openstack.org/folsom/openstack-compute/admin/content/configuring-compute-API.html) In this case you can change them to more appropriate values. + +There are two hashes describing these limits: $nova_rate_limits and $cinder_rate_limits. :: + + ... + #Rate Limits for cinder and Nova + #Cinder and Nova can rate-limit your requests to API services. + #These limits can be reduced for your installation or usage scenario. + #Change the following variables if you want. They are measured in requests per minute. + $nova_rate_limits = { + 'POST' => 1000, + 'POST_SERVERS' => 1000, + 'PUT' => 1000, 'GET' => 1000, + 'DELETE' => 1000 + } + $cinder_rate_limits = { + 'POST' => 1000, + 'POST_SERVERS' => 1000, + 'PUT' => 1000, 'GET' => 1000, + 'DELETE' => 1000 + } + ... + + +Enabling Horizon HTTPS/SSL mode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Using the $horizon_use_ssl variable, you have the option to decide whether the OpenStack dashboard (Horizon) uses HTTP or HTTPS:: + + ... + # 'custom': require fileserver static mount point [ssl_certs] and hostname based certificate existence + $horizon_use_ssl = false + + class compact_controller ( + ... + +This variable accepts the following values: + + * 'false': In this mode, the dashboard uses HTTP with no encryption + * 'default': In this mode, the dashboard uses keys supplied with the standard Apache SSL module package + * 'exist': In this case, the dashboard assumes that the domain name-based certificate, or keys, are provisioned in advance. This can be a certificate signed by any authorized provider, such as Symantec/Verisign, Comodo, GoDaddy, and so on. The system looks for the keys in these locations: + + for Debian/Ubuntu: + * public `/etc/ssl/certs/domain-name.pem` + * private `/etc/ssl/private/domain-name.key` + for Centos/RedHat: + * public `/etc/pki/tls/certs/domain-name.crt` + * private `/etc/pki/tls/private/domain-name.key` + + * 'custom': This mode requires a static mount point on the fileserver for [ssl_certs] and certificate pre-existence. To enable this mode, configure the puppet fileserver by editing /etc/puppet/fileserver.conf to add:: + + ... + [ssl_certs] + path /etc/puppet/templates/ssl + allow * + .. + + From there, create the appropriate directory:: + + mkdir -p /etc/puppet/templates/ssl + + Add the certificates to this directory. (Reload the puppetmaster service for these changes to take effect.) Now we just need to make sure that all of our nodes get the proper values. @@ -448,16 +557,24 @@ specify the individual controllers:: Notice also that each controller has the swift_zone specified, so each of the three controllers can represent each of the three Swift zones. -<<<<<<< HEAD -======= -In ``openstack/examples/site_openstack_full.pp`` example, the following nodes are specified: ->>>>>>> 5f32c0d... Rename and sync manifests + +In the ``openstack/examples/site_openstack_full.pp`` example, the following nodes are specified: + +* fuel-controller-01 +* fuel-controller-02 +* fuel-controller-03 +* fuel-compute-[\d+] +* fuel-swift-01 +* fuel-swift-02 +* fuel-swift-03 +* fuel-swiftproxy-[\d+] +* fuel-quantum + +Using this architecture, the system includes three stand-alone swift-storage servers, and one or more swift-proxy servers. + +In the ``openstack/examples/site_openstack_compact.pp`` example on the other hand, the role of swift-storage and swift-proxy are combined with the controllers. -<<<<<<< HEAD -======= -In ``openstack/examples/site_openstack_compact.pp`` example, the role of swift-storage and swift-proxy combined with controllers. ->>>>>>> 5f32c0d... Rename and sync manifests One final fix ^^^^^^^^^^^^^ @@ -533,69 +650,6 @@ again grep for error messages. When you see no errors on any of your nodes, your OpenStack cluster is ready to go. -Configuring OpenStack to use syslog -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* If you want to use syslog server, you need to do the following steps: - -Adjust the corresponding variables in "if $use_syslog" clause:: - - $use_syslog = true - if $use_syslog { - class { "::rsyslog::client": - log_local => true, - log_auth_local => true, - server => '127.0.0.1', - port => '514' - } - } - -For remote logging: - - server => - - port => - -For local logging: - - set log_local and log_auth_local to true - - -Setting the mirror type -^^^^^^^^^^^^^^^^^^^^^^^ - - -To tell Fuel to download packages from external repos provided by Mirantis and your distribution vendors, set the $mirror_type variable to "external":: - - ... - # If you want to set up a local repository, you will need to manually adjust mirantis_repos.pp, - # though it is NOT recommended. - $mirror_type = 'external' - $enable_test_repo = false - ... - -Future versions of Fuel will enable you to use your own internal repositories. - -Configuring Rate-Limits -^^^^^^^^^^^^^^^^^^^^^^^ - -Openstack has predefined limits on different HTTP queries for nova-compute and cinder services. Some -times (e.g. for big clouds or test scenarios) these limits are too strict. (See http://docs.openstac -k.org/folsom/openstack-compute/admin/content/configuring-compute-API.html) In this case you can chan -ge them to appropriate values. - -There are two hashes describing these limits: $nova_rate_limits and $cinder_rate_limits. :: - - $nova_rate_limits = { 'POST' => '10', - 'POST_SERVERS' => '50', - 'PUT' => 10, 'GET' => 3, - 'DELETE' => 100 } - - $cinder_rate_limits = { 'POST' => '10', - 'POST_SERVERS' => '50', - 'PUT' => 10, 'GET' => 3, - 'DELETE' => 100 } - Installing Nagios Monitoring using Puppet diff --git a/docs/pages/production-considerations/0010-introduction.rst b/docs/pages/production-considerations/0010-introduction.rst index ccf7ec3eb0..559adb53c8 100644 --- a/docs/pages/production-considerations/0010-introduction.rst +++ b/docs/pages/production-considerations/0010-introduction.rst @@ -1 +1,3 @@ -[NEED CONTENT HERE] +One of the advantages of using Fuel is that it makes it easy to set up an OpenStack cluster so that you can feel your way around and get your feet wet. You can easily set up a cluster using test, or even virtual machines but when you're ready to do an actual deployment, however, there are a number of things you need to consider. + +In this section, you'll find information such as how to size the hardware for your cloud, how to handle large-scale deployments, and how to streamline your maintenance tasks using techniques such as orchestration. diff --git a/docs/pages/production-considerations/0015-sizing-hardware.rst b/docs/pages/production-considerations/0015-sizing-hardware.rst index c83e68bcb5..87b6ac5262 100755 --- a/docs/pages/production-considerations/0015-sizing-hardware.rst +++ b/docs/pages/production-considerations/0015-sizing-hardware.rst @@ -1,4 +1,160 @@ Sizing Hardware --------------- -[CONTENT TO BE ADDED] \ No newline at end of file +One of the first questions that comes to mind when planning an OpenStack deployment is "what kind of hardware do I need?" Finding the answer is rarely simple, but getting some idea is not impossible. + +Many factors contribute to decisions regarding hardware for an OpenStack cluster -- contact Mirantis for information on your specific situation -- but in general, you will want to consider the following four areas: + +* CPU +* Memory +* Disk +* Networking + +Your needs in each of these areas are going to determine your overall hardware requirements. + +CPU +--- + +The basic consideration when it comes to CPU is how many GHZ you're going to need. To determine that, think about how many VMs you plan to support, and the average speed you plan to provide, as well as the maximum you plan to provide for a single VM. For example, consider a situation in which you expect: + +* 100 VMs +* 2 EC2 compute units (2 GHz) average +* 16 EC2 compute units (16 GHz) max + +What does this mean? Well, to make it possible to provide the maximum CPU, you will need at least 5 cores (16 GHz/2.4 GHz per core) per machine, and at least 84 cores ((100 VMs * 2 GHz per VM)/2.4 GHz per core) in total. + +If you were to choose the Intel E5 2650-70 8 core CPU, that means you need 10-11 sockets (84 cores / 8 cores per socket). + +All of this means you will need 5-6 dual core servers (11 sockets / 2 sockets per server), for a "packing density" of 17 VMs per server (100 VMs / 6 servers). + +You will need to take into account a couple of additional notes: + +* This model assumes you are not oversubscribing your CPU. +* If you are considering Hyperthreading, count each core as 1.3, not 2. +* Choose a good value CPU. + +Memory +------ + +The process of determining memory requirements is similar to determining CPU. Start by deciding how much memory will be devoted to each VM. In this example, with 4 GB per VM and a maximum of 32 GB for a single VM, you will need 400 GB of RAM. + +For cost reasons, you will want to use 8 GB or smaller DIMMs, so considering 16 - 24 slots per server (or 128 GB at the low end) you will need 4 servers to meet your needs. + +However, remember that you need 6 servers to meet your CPU requirements, so instead you can go with 6 64 GB or 96 GB machines. + +Again, you do not want to oversubscribe memory. + +Disk Space +---------- + +When it comes to disk space there are several types that you need to consider: + +* Ephemeral (the local drive space for a VM) +* Persistent (the remote volumes that can be attached to a VM) +* Object Storage (such as images or other objects) + +As far as local drive space that must reside on the compute nodes, in our example of 100 VMs, our assumptions are: + +* 50 GB local space per VM +* 5 TB total of local space (100 VMs * 50 GB per VM) +* 500 GB of persistent volume space per VM +* 50 TB total persistent storage + +Again you have 6 servers, so that means you're looking at .9TB per server (5 TB / 6 servers) for local drive space. + +Throughput +^^^^^^^^^^ + +As far as throughput, that's going to depend on what kind of storage you choose. In general, you calculate IOPS based on the packing density (drive IOPS * drives in the server / VMs per server), but the actual drive IOPS will depend on what you choose. For example: + +* 3.5" slow and cheap (100 IOPS per drive, with 2 mirrored drives) + + * 100 IOPS * 2 drives / 17 VMs per server = 12 Read IOPS, 6 Write IOPS + +* 2.5" 15K (200 IOPS, 4 600 GB drive, RAID 10) + + * 200 IOPS * 4 drives / 17 VMs per server = 48 Read IOPS, 24 Write IOPS + +* SSD (40K IOPS, 8 300 GB drive, RAID 10) + + * 40K * 8 drives / 17 VMs per server = 19K Read IOPS, 9.5K Write IOPS + +Clearly, SSD gives you the best performance, but the difference in cost between that and the lower end solution is going to be signficant, to say the least. You'll need to decide based on your own situation. + +Remote storage +^^^^^^^^^^^^^^ + +IOPS will also be a factor in determining how you decide to handle persistent storage. For example, consider these options for laying out your 50 TB of remote volume space: + +* 12 drive storage frame using 3 TB 3.5" drives mirrored + + * 36 TB raw, or 18 TB usable space per 2U frame + * 3 frames (50 TB / 18 TB per server) + * 12 slots x 100 IOPS per drive = 1200 Read IOPS, 600 Write IOPS per frame + * 3 frames x 1200 IOPS per frame / 100 VMs = **36 Read IOPS, 18 Write IOPS per frame** + +* 24 drive storage frame using 1TB 7200 RPM 2.5" drives + + * 24 TB raw, or 12 TB usable space per 2U frame + * 5 frames (50 TB / 12 TB per server) + * 24 slots x 100 IOPS per drive = 2400 Read IOPS, 1200 Write IOPS per frame + * 5 frames x 2400 IOPS per frame / 100 VMs = **120 Read IOPS, 60 Write IOPS per frame** + +You can accomplish the same thing with a single 36 drive frame using 3 TB drives, but this becomes a single point of failure in your cluster. + +Object storage +^^^^^^^^^^^^^^ + +When it comes to object storage, you will find that you need more space than you think. For example, this example specifies 50 TB of object storage. Easy right? + +Well, no. Object storage uses a default of 3 times the required space for replication, which means you will need 150 TB. However, to accommodate two hands-off zones, you will need 5 times the required space, which means 250 TB. + +But the calculations don't end there. You don't ever want to run out of space, so "full" should really be more like 75% of capacity, which means 333 TB, or a multiplication factor of 6.66. + +Of course, that might be a bit much to start with; you might want to start with a happy medium of a multiplier of 4, then acquire more hardware as your drives begin to fill up. That means 200 TB in this example. + +So how do you put that together? If you were to use 3 TB 3.5" drives, you could use a 12 drive storage frame, with 6 servers hosting 36 TB each (for a total of 216 TB). + +You could also use a 36 drive storage frame, with just 2 servers hosting 108 TB each, but it's not recommended due to several factors, from the high cost of failure to replication and capacity issues. + +Networking +---------- + +Perhaps the most complex part of designing an OpenStack cluster is the networking. An OpenStack cluster can involve multiple networks even beyond the Public, Private, and Internal networks. Your cluster may involve tenant networks, storage networks, multiple tenant private networks, and so on. Many of these will be VLANs, and all of them will need to be planned out. + +In terms of the example network, consider these assumptions: + +* 100 Mbits/second per VM +* HA architecture +* Network Storage is not latency sensitive + +In order to achieve this, you can use 2 1Gb links per server (2 x 1000 Mbits/second / 17 VMs = 118 Mbits/second). Using 2 links also helps with HA. + +You can also increase throughput and decrease latency by using 2 10 Gb links, bringing the bandwidth per VM to 1 Gb/second, but if you're going to do that, you've got one more factor to consider. + +Scalability and oversubscription +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +It is one of the ironies of networking that 1Gb Ethernet generally scales better than 10Gb Ethernet -- at least until 100Gb switches are more commonly available. It's possible to aggregate the 1Gb links in a 48 port switch, so that you have 48 1Gb links down, but 4 10GB links up. Do the same thing with a 10Gb switch, however, and you have 48 10Gb links down and 4 100Gb links up, resulting in oversubscription. + +Like many other issues in OpenStack, you can avoid this problem to a great extent with careful planning. Problems only arise when you are moving between racks, so plan to create "pods", each of which includes both storage and compute nodes. Generally, a pod is the size of a non-oversubscribed L2 domain. + +Hardware for this example +^^^^^^^^^^^^^^^^^^^^^^^^^ + +In this example, you are looking at: + +* 2 data switches (for HA), each with a minimum of 12 ports for data (2 x 1Gb links per server x 6 servers) +* 1 1Gb switch for IPMI (1 port per server x 6 servers) +* Optional Cluster Management switch, plus a second for HA + +Because your network will in all likelihood grow, it's best to choose 48 port switches. Also, as your network grows, you will need to consider uplinks and aggregation switches. + +Summary +------- + +In general, your best bet is to choose a large multi-socket server, such as a 2 socket server with a balance in I/o, CPU, Memory, and Disk. Look for a 1U low cost R-class or 2U high density C-class server. Some good alternatives for compute nodes include: + +* Dell PowerEdge R620 +* Dell PowerEdge C6220 Rack Server +* Dell PowerEdge R720XD (for high disk or IOPS requirements) diff --git a/docs/pages/production-considerations/0030-large-deployments.rst b/docs/pages/production-considerations/0030-large-deployments.rst index f9e498dfc7..8f30177c17 100644 --- a/docs/pages/production-considerations/0030-large-deployments.rst +++ b/docs/pages/production-considerations/0030-large-deployments.rst @@ -1,4 +1,36 @@ Large Scale Deployments ----------------------- -[NEED CONTENT] +When deploying large clusters -- those of 100 nodes or more -- there are two basic bottlenecks: + +* Certificate signing requests and Puppet Master/Cobbler capacity +* Downloading of operating systems and other software + +All of these bottlenecks can be mitigated with careful planning. + +Certificate signing requests and Puppet Master/Cobbler capacity +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +When deploying a large cluster, you may find that Puppet Master begins to have difficulty when you start exceeding 20 or more simultaneous requests. Part of this problem is because the initial process of requesting and signing certificates involves *.tmp files that can create conflicts. To solve this problem, you have two options: reduce the number of simultaneous requests, or increase the number of Puppet Master/Cobbler servers. + +Reducing the number of simultaneous requests is a simple matter of staggering Puppet agent runs. Orchestration can provide a convenient way to accomplish this goal. You don't need extreme staggering -- 1 to 5 seconds will do -- but if this method isn't practical, you can increase the number of Puppet Master/Cobbler servers. + +If you're simply overwhelming the Puppet Master process and not running into file conflicts, one way to get around this problem is to use Puppet Master with Thin as a backend and nginx as a front end. This configuration will enable you to dynamically scale the number of Puppet Master processes up and down to accommodate load. + +You can find sample configuration files for nginx and puppetmasterd at [CONTENT NEEDED HERE]. + +You can also increase the number of servers by creating a cluster of servers behind a round robin DNS managed by a service such as HAProxy. You will also need to ensure that these nodes are kept in sync. For Cobbler, that means a combination of the --replicate switch, XMLRPC for metadata, rsync for profiles and distributions. Similarly, Puppet Master and PuppetDB can be kept in sync with a combination of rsync (for modules, manifests, and SSL data) and database replication. + +.. image:: /pages/production-considerations/cobbler-puppet-ha.png + +Downloading of operating systems and other software +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Large deployments also suffer from a bottleneck in terms of downloading of software. One way to avoid this problem is the use of multiple 1G interfaces bonded together. You might also want to consider 10G Ethernet, if the rest of your architecture warrants it. (See "Sizing Hardware" for more information on choosing networking equipment.) + +Another option is to prevent the need to download so much data in the first place using either apt-cacher, which acts as a repository cache, or a private repository. + +To use apt-cacher, the kickstarts Cobbler provides to each node should specify Cobbler's IP address and the apt-cacher port as the proxy server. This will prevent all of the nodes from having to download the software individually. + +Contact Mirantis for information on creating a private repository. diff --git a/docs/pages/production-considerations/cobbler-puppet-ha.png b/docs/pages/production-considerations/cobbler-puppet-ha.png new file mode 100644 index 0000000000000000000000000000000000000000..6c6fe0faadf4d3c01094a802fa841cf6017094d3 GIT binary patch literal 85040 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 z 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ÊGPg8$1=(IR%Bsb*K<6=5O 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