diff --git a/docs/index.rst b/docs/index.rst index 4396839c94..644e678a23 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -15,5 +15,6 @@ Table of contents infra/jenkins_slave_deployment infra/overview infra/puppet_master_deployment + infra/seed_server_deployment infra/third_party packaging diff --git a/docs/infra/seed_server_deployment.rst b/docs/infra/seed_server_deployment.rst new file mode 100644 index 0000000000..61ac85e56a --- /dev/null +++ b/docs/infra/seed_server_deployment.rst @@ -0,0 +1,91 @@ +Seed server +=========== + +Seed server serves the files, such as ISO and disk images that were uploaded +from other servers or clients. Seed can host the content by the rsync, http, +or torrent protocol, depending on the Hiera's role configuration. + +Deployment +---------- + +Before you deploy Seed server, verify that you have completed the following tasks: + +#. Deploy the Puppet Master +#. Verify that the DNS solution works. +#. On the Puppet Master, create ``seed``, a dedicated Hiera role from which all + necessary services as opentracker will install. + + .. note:: + For torrent download, do not include the ``fuel_project::apps::mirror`` + +#. On the Jenkins Master, verify that the ``seed`` Hiera role exists: + + .. code-block:: ini + + --- + classes: + - 'fuel_project::common' + - 'fuel_project::apps::seed' + - 'fuel_project::apps::firewall' + - 'opentracker' + + fuel_project::apps::seed::vhost_acl_allow: + - 10.0.0.2/32 # IP's slave example on which ISO is build + + fuel_project::apps::seed::service_fqdn: 'seed.test.local' + + fuel_project::apps::seed::seed_cleanup_dirs: + - dir: '/var/www/seed/fuelweb-iso' + ttl: 11 + pattern: 'fuel-*' + + fuel_project::apps::firewall::rules: + '1000 - allow ssh connections from 0.0.0.0/0': + source: 0.0.0.0/0 + dport: 22 + proto: tcp + action: accept + + '1000 - allow data upload connections from temp build1.test.local': + source: 10.0.0.2/32 + dport: 17333 + proto: tcp + action: accept + + '1000 - allow zabbix-agent connections from 10.0.0.200/32': + source: 10.0.0.200/32 + dport: 10050 + proto: tcp + action: accept + + '1000 - allow torrent traffic within 10.0.0.0/8 network': + source: 10.0.0.0/8 + dport: 8080 + proto: tcp + action: accept + +To deploy Seed server, complete the following steps: + +#. Install base Ubuntu 14.04 with SSH service and set appropriate FQDN. + +#. Install puppet agent package: + + .. code-block:: console + + apt-get update; apt-get install -y puppet + +#. Enable puppet agent: + + .. code-block:: console + + puppet agent --enable + +#. Run the deployment of the ``seed`` role: + + .. code-block:: console + + FACTER_ROLE=seed FACTER_LOCATION=us1 puppet agent -tvd \ + --server puppet-master.test.local --waitforcert 60 + +The last action requests the client's certificate. To continue the puppet run, +the certificate should be signed from the Puppet Master.