From 4ed3f854e53bcbad4481ebbeb7c8a073814c0add Mon Sep 17 00:00:00 2001 From: Graham Morrison Date: Tue, 23 Jan 2018 18:04:24 +0000 Subject: [PATCH 01/12] removed requirements from intro doc and placed them into their own document for direct linking from the new menu. --- en/intro-requirements.md | 84 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 en/intro-requirements.md diff --git a/en/intro-requirements.md b/en/intro-requirements.md new file mode 100644 index 00000000..76a9f148 --- /dev/null +++ b/en/intro-requirements.md @@ -0,0 +1,84 @@ +Title: What is MAAS? +table_of_contents: True + +# Requirements + +The minimum requirements for the machines that run MAAS vary widely depending +on local implementation and usage. + +Below, resource estimates are provided based on MAAS components and operating +system (Ubuntu Server). A test (or proof of concept) and a production +environment are considered. + + +## Test environment + + This is a proof of concept scenario where all MAAS components are installed + on a single host. *Two* complete sets of images (latest two Ubuntu + LTS releases) for a *single* architecture (amd64) have been assumed. + + | | Memory (MB) | CPU (GHz) | Disk (GB) | + | --------------------------------------------------- | ----------- | --------- | --------- | + | [Region controller][concepts-controllers] (minus PostgreSQL) | 512 | 0.5 | 5 | + | PostgreSQL | 512 | 0.5 | 5 | + | [Rack controller][concepts-controllers] | 512 | 0.5 | 5 | + | Ubuntu Server (including logs) | 512 | 0.5 | 5 | + + Therefore, the approximate requirements for this scenario are: 2 GB memory, + 2 GHz CPU, and 20 GB of disk space. + + +## Production environment + + This is a production scenario that is designed to handle a high number of + sustained client connections. Both high availability (region and rack) and load + balancing (region) have been implemented. + + Even though extra space has been reserved for images (database and rack + controller) some images such as those for Microsoft Windows may require a lot + more (plan accordingly). + + | | Memory (MB) | CPU (GHz) | Disk (GB) | + | --------------------------------------------------- | ----------- | --------- | --------- | + | [Region controller][concepts-controllers] (minus PostgreSQL) | 2048 | 2.0 | 5 | + | PostgreSQL | 2048 | 2.0 | 20 | + | [Rack controller][concepts-controllers] | 2048 | 2.0 | 20 | + | Ubuntu Server (including logs) | 512 | 0.5 | 20 | + + Therefore, the approximate requirements for this scenario are: + + - A region controller (including PostgreSQL) is installed on one host: 4.5 GB + memory, 4.5 GHz CPU, and 45 GB of disk space. + - A region controller (including PostgreSQL) is duplicated on a second + host: 4.5 GB memory, 4.5 GHz CPU, and 45 GB of disk space. + - A rack controller is installed on a third host: 2.5 GB memory, 2.5 GHz CPU, + and 40 GB of disk space. + - A rack controller is duplicated on a fourth host: 2.5 GB memory, 2.5 GHz CPU, + and 40 GB of disk space. + +!!! Note: + Figures in the above two tables are for the MAAS infrastructure only. + That is, they do not cover resources needed on the nodes that will subsequently + be added to MAAS. That said, node machines should have IPMI-based BMC + controllers for power cycling, see [BMC power types][power-types]. + +Examples of factors that influence hardware specifications include: + + - the number of connecting clients (client activity) + - the manner in which services are distributed + - whether [high availability][manage-ha] is used + - whether [load balancing][load-balancing] is used + - the number of images that are stored (disk space affecting PostgreSQL and + the rack controller) + +Equally not taken into account is a possible [local image mirror][mirror] which +would be a large consumer of disk space. + +One rack controller should not be used to service more than 1000 nodes (whether +on the same or multiple subnets). There is no load balancing at the rack level +so further independent rack controllers will be needed with each one servicing +its own subnet(s). + +[concepts-controllers]: intro-concepts.md#controllers +[manage-ha]: manage-ha.md +[load-balancing]: manage-ha.md#load-balancing-(optional) From 7ada4d51523df0ee6ab16c01699cb9d2b96766ad Mon Sep 17 00:00:00 2001 From: Graham Morrison Date: Tue, 23 Jan 2018 18:08:15 +0000 Subject: [PATCH 02/12] cut requirements. --- en/index.md | 79 +---------------------------------------------------- 1 file changed, 1 insertion(+), 78 deletions(-) diff --git a/en/index.md b/en/index.md index d1b1a34b..78f05748 100644 --- a/en/index.md +++ b/en/index.md @@ -1,4 +1,5 @@ Title: What is MAAS? + table_of_contents: True @@ -124,84 +125,6 @@ These methods, and their respective advantages, are fleshed out on the [Installation][maas-install] page. -## Minimum requirements - -The minimum requirements for the machines that run MAAS vary widely depending -on local implementation and usage. - -Below, resource estimates are provided based on MAAS components and operating -system (Ubuntu Server). A test (or proof of concept) and a production -environment are considered. - - -^# Test environment - - This is a proof of concept scenario where all MAAS components are installed - on a single host. *Two* complete sets of images (latest two Ubuntu - LTS releases) for a *single* architecture (amd64) have been assumed. - - | | Memory (MB) | CPU (GHz) | Disk (GB) | - | --------------------------------------------------- | ----------- | --------- | --------- | - | [Region controller][concepts-controllers] (minus PostgreSQL) | 512 | 0.5 | 5 | - | PostgreSQL | 512 | 0.5 | 5 | - | [Rack controller][concepts-controllers] | 512 | 0.5 | 5 | - | Ubuntu Server (including logs) | 512 | 0.5 | 5 | - - Therefore, the approximate requirements for this scenario are: 2 GB memory, - 2 GHz CPU, and 20 GB of disk space. - - -^# Production environment - - This is a production scenario that is designed to handle a high number of - sustained client connections. Both high availability (region and rack) and load - balancing (region) have been implemented. - - Even though extra space has been reserved for images (database and rack - controller) some images such as those for Microsoft Windows may require a lot - more (plan accordingly). - - | | Memory (MB) | CPU (GHz) | Disk (GB) | - | --------------------------------------------------- | ----------- | --------- | --------- | - | [Region controller][concepts-controllers] (minus PostgreSQL) | 2048 | 2.0 | 5 | - | PostgreSQL | 2048 | 2.0 | 20 | - | [Rack controller][concepts-controllers] | 2048 | 2.0 | 20 | - | Ubuntu Server (including logs) | 512 | 0.5 | 20 | - - Therefore, the approximate requirements for this scenario are: - - - A region controller (including PostgreSQL) is installed on one host: 4.5 GB - memory, 4.5 GHz CPU, and 45 GB of disk space. - - A region controller (including PostgreSQL) is duplicated on a second - host: 4.5 GB memory, 4.5 GHz CPU, and 45 GB of disk space. - - A rack controller is installed on a third host: 2.5 GB memory, 2.5 GHz CPU, - and 40 GB of disk space. - - A rack controller is duplicated on a fourth host: 2.5 GB memory, 2.5 GHz CPU, - and 40 GB of disk space. - -!!! Note: - Figures in the above two tables are for the MAAS infrastructure only. - That is, they do not cover resources needed on the nodes that will subsequently - be added to MAAS. That said, node machines should have IPMI-based BMC - controllers for power cycling, see [BMC power types][power-types]. - -Examples of factors that influence hardware specifications include: - - - the number of connecting clients (client activity) - - the manner in which services are distributed - - whether [high availability][manage-ha] is used - - whether [load balancing][load-balancing] is used - - the number of images that are stored (disk space affecting PostgreSQL and - the rack controller) - -Equally not taken into account is a possible [local image mirror][mirror] which -would be a large consumer of disk space. - -One rack controller should not be used to service more than 1000 nodes (whether -on the same or multiple subnets). There is no load balancing at the rack level -so further independent rack controllers will be needed with each one servicing -its own subnet(s). - From 83794d29eed6abf9e179cc31ded7e505e15b932a Mon Sep 17 00:00:00 2001 From: Graham Morrison Date: Tue, 23 Jan 2018 18:09:25 +0000 Subject: [PATCH 03/12] fixed table of contents error. --- en/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/en/index.md b/en/index.md index 78f05748..2ea2cdb3 100644 --- a/en/index.md +++ b/en/index.md @@ -1,5 +1,4 @@ Title: What is MAAS? - table_of_contents: True From 24bdb404705ad29ce8a2b8bbcebd3c14eacb8470 Mon Sep 17 00:00:00 2001 From: Graham Morrison Date: Wed, 24 Jan 2018 10:08:00 +0000 Subject: [PATCH 04/12] removed management summary. --- en/intro-management.md | 43 ------------------------------------------ 1 file changed, 43 deletions(-) delete mode 100644 en/intro-management.md diff --git a/en/intro-management.md b/en/intro-management.md deleted file mode 100644 index d933d9e2..00000000 --- a/en/intro-management.md +++ /dev/null @@ -1,43 +0,0 @@ -Title: Management Summary - - -# Management Summary - -MAAS can be managed, typically by a systems administrator, in the following -ways: - -- Web UI (graphical interface) -- CLI (text-based terminal) -- API (involves programming) - -This section will cover each briefly. Details of each will be provided in -future chapters. - - -## Web UI - -The web UI gets installed along with the MAAS software. This documentation -regards the web UI as the primary means for configuring and managing MAAS and -will use it as the preferred method in all instructions and examples. See -[Web UI][webui] once MAAS is installed. - -Some advanced functionality is only available with the CLI. See below. - - -## CLI - -The CLI consists of the `maas` wrapper command that interacts with the API. To -get a sense of what is possible with the CLI see [MAAS CLI][manage-cli]. - - -## API - -The API is typically reserved for large-scale automization. See -[API documentation][api]. - - - - -[webui]: installconfig-webui.md -[manage-cli]: manage-cli.md -[api]: api.md From 2cdb45c22f77f1cf5895e5922f3fd3944bb9ecaf Mon Sep 17 00:00:00 2001 From: Graham Morrison Date: Wed, 24 Jan 2018 10:34:37 +0000 Subject: [PATCH 05/12] added a few details from the removed management summary doc. --- en/index.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/en/index.md b/en/index.md index 2ea2cdb3..b604f447 100644 --- a/en/index.md +++ b/en/index.md @@ -49,6 +49,10 @@ MAAS works with any configuration system, and is recommended by the teams behind both [Chef][about-chef] and [Juju][about-juju] as a physical provisioning system. +The [web UI][webui] provides a responsive interface to the majority of MAAS +functionality, while the [CLI][manage-cli] and [REST API][api] facilitate +configuration and large-scale automation. + !!! Note: Windows, RHEL and SUSE images require [Ubuntu Advantage][ubuntu-advantage] to work properly with MAAS. @@ -138,3 +142,6 @@ These methods, and their respective advantages, are fleshed out on the [power-types]: nodes-power-types.md [load-balancing]: manage-ha.md#load-balancing-(optional) [mirror]: installconfig-images-mirror.md +[webui]: installconfig-webui.md +[manage-cli]: manage-cli.md +[api]: api.md From f6a66ae2d168005aa6cb6fc9eb9a2ce475030a41 Mon Sep 17 00:00:00 2001 From: Graham Morrison Date: Wed, 24 Jan 2018 11:39:14 +0000 Subject: [PATCH 06/12] image: general web UI view for landing page. --- media/intro__2.3_webui.png | Bin 0 -> 61677 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 media/intro__2.3_webui.png diff --git a/media/intro__2.3_webui.png b/media/intro__2.3_webui.png new file mode 100644 index 0000000000000000000000000000000000000000..9057571f2e3c29376e1fff5acdaf4fe0eb516e7d GIT binary patch literal 61677 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 Date: Wed, 24 Jan 2018 11:59:45 +0000 Subject: [PATCH 07/12] added overview web UI image. --- en/index.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/en/index.md b/en/index.md index b604f447..d8144d03 100644 --- a/en/index.md +++ b/en/index.md @@ -53,6 +53,8 @@ The [web UI][webui] provides a responsive interface to the majority of MAAS functionality, while the [CLI][manage-cli] and [REST API][api] facilitate configuration and large-scale automation. +![web UI showing node view][img__webui] + !!! Note: Windows, RHEL and SUSE images require [Ubuntu Advantage][ubuntu-advantage] to work properly with MAAS. @@ -145,3 +147,7 @@ These methods, and their respective advantages, are fleshed out on the [webui]: installconfig-webui.md [manage-cli]: manage-cli.md [api]: api.md + + +[img__webui]: ../media/intro__2.3_webui.png + From c160130859438704345f6af6e886a9f0401a078b Mon Sep 17 00:00:00 2001 From: Graham Morrison Date: Wed, 24 Jan 2018 17:29:31 +0000 Subject: [PATCH 08/12] moved key component section. --- en/index.md | 50 ++++++++++++++++++-------------------------------- 1 file changed, 18 insertions(+), 32 deletions(-) diff --git a/en/index.md b/en/index.md index d8144d03..162ff971 100644 --- a/en/index.md +++ b/en/index.md @@ -60,6 +60,24 @@ configuration and large-scale automation. [Ubuntu Advantage][ubuntu-advantage] to work properly with MAAS. +## Key components and colocation of all services + +The key components of a MAAS installation are the region controller and the +rack controller. See [Concepts and terms][concepts-controllers] for how each +are defined. + +Unless there is specific reason not to, it is recommended to have both +controllers residing on the same system. A no-fuss way to achieve this is by +installing the `maas` metapackage, or by installing from the Ubuntu Server ISO. + +Multiple region and rack controllers are required if +[high availability][manage-ha] and/or load balancing (see HA page) is desired. + +It's important to note that the all-in-one solution will provide a DHCP +service. Review your existing network design in order to determine whether this +will cause problems. See [DHCP][dhcp] for more on this subject. + + ## How MAAS works MAAS manages a pool of nodes. After registering ("Enlisting" state) a new @@ -99,38 +117,6 @@ Juju terminology. However, everything that was stated earlier still applies. For instance, if Juju removes a machine then MAAS will, in turn, release that machine to the pool. - -## Key components and colocation of all services - -The key components of a MAAS installation are the region controller and the -rack controller. See [Concepts and terms][concepts-controllers] for how each -are defined. - -Unless there is specific reason not to, it is recommended to have both -controllers residing on the same system. A no-fuss way to achieve this is by -installing the `maas` metapackage, or by installing from the Ubuntu Server ISO. - -Multiple region and rack controllers are required if -[high availability][manage-ha] and/or load balancing (see HA page) is desired. - -It's important to note that the all-in-one solution will provide a DHCP -service. Review your existing network design in order to determine whether this -will cause problems. See [DHCP][dhcp] for more on this subject. - - -## Installation methods - -There are three ways to install MAAS: - -- From the Ubuntu Server ISO -- From software packages ("debs") -- As a self-contained LXD environment - -These methods, and their respective advantages, are fleshed out on the -[Installation][maas-install] page. - - - [about-chef]: https://www.chef.io/chef From 8f507424d01365a4ac9332d303c407453977e1f6 Mon Sep 17 00:00:00 2001 From: Graham Morrison Date: Wed, 24 Jan 2018 17:31:47 +0000 Subject: [PATCH 09/12] added architectural overview image. --- en/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/en/index.md b/en/index.md index 162ff971..6d30581e 100644 --- a/en/index.md +++ b/en/index.md @@ -77,6 +77,7 @@ It's important to note that the all-in-one solution will provide a DHCP service. Review your existing network design in order to determine whether this will cause problems. See [DHCP][dhcp] for more on this subject. +![intro-arch-overview][img__arch-overview] ## How MAAS works @@ -136,4 +137,4 @@ machine to the pool. [img__webui]: ../media/intro__2.3_webui.png - +[img__arch-overview]: ../media/intro-arch-overview.png From eaac76f5a6c14f55f00657eeffdb9b1c3b016e3a Mon Sep 17 00:00:00 2001 From: Graham Morrison Date: Wed, 24 Jan 2018 17:33:06 +0000 Subject: [PATCH 10/12] removed intro-architecure doc and integrated image into landing page. --- en/intro-architecture.md | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 en/intro-architecture.md diff --git a/en/intro-architecture.md b/en/intro-architecture.md deleted file mode 100644 index ade0bc06..00000000 --- a/en/intro-architecture.md +++ /dev/null @@ -1,13 +0,0 @@ -Title: Architectural Overview - - -# Architectural Overview - -The high level architecture of MAAS is presented below. - -![intro-arch-overview][img__arch-overview] - - - - -[img__arch-overview]: ../media/intro-arch-overview.png From c0987298db8a4b9f7cbc2298f9128ac906305de1 Mon Sep 17 00:00:00 2001 From: Graham Morrison Date: Thu, 25 Jan 2018 12:53:41 +0000 Subject: [PATCH 11/12] updates table of contents to improve navigability. --- en/metadata.yaml | 204 ++++++++++++++++++++++------------------------- 1 file changed, 97 insertions(+), 107 deletions(-) diff --git a/en/metadata.yaml b/en/metadata.yaml index bac25141..6616968c 100644 --- a/en/metadata.yaml +++ b/en/metadata.yaml @@ -1,52 +1,86 @@ navigation: - - title: Introduction + - title: Get started children: - title: About MAAS location: index.md - - title: Management summary - location: intro-management.md + - title: Requirements + location: intro-requirements.md - - title: Concepts and terms - location: intro-concepts.md + # - title: Explore MAAS - - title: Architectural overview - location: intro-architecture.md + # - title: Quick guides - - title: Install & Configure + # children: - children: + # - title: Create a pod + + # - title: Juju with MAAS + + # - title: Space isolation + + # - title: Deploy OpenStack - - title: Checklist - location: installconfig-checklist.md + - title: User guide + location: installconfig-install.md + children: + - title: Install MAAS location: installconfig-install.md + - title: Controllers + children: - - title: Install from ISO - location: installconfig-iso-install.md + - title: Rack controller + location: installconfig-rack.md + + # - title: Region controller + # location: - - title: Install from packages - location: installconfig-package-install.md + - title: Nodes - - title: Install from a snap - location: installconfig-snap-install.md + children: + + - title: Node overview + location: nodes-overview.md + + - title: Add nodes + location: nodes-add.md + + - title: BMC power types + location: nodes-power-types.md + + - title: Commission nodes + location: nodes-commission.md + + - title: Deploy nodes + location: nodes-deploy.md - - title: Install with LXD - location: installconfig-lxd-install.md + - title: Tags + location: nodes-tags.md - - title: Upgrade from 1.9 to 2.0 - location: installconfig-upgrade-to-2.md + - title: Kernel boot options + location: nodes-kernel-options.md - - title: Rack controller - location: installconfig-rack.md + - title: Ubuntu kernels + location: nodes-kernels.md + + - title: Hardware testing + location: nodes-hw-testing.md + + - title: Hardware testing scripts + location: nodes-hw-scripts.md + + - title: Composable hardware + location: nodes-comp-hw.md + + - title: Custom node setup + location: nodes-custom.md - - title: Web UI - location: installconfig-webui.md - title: Images location: installconfig-images.md @@ -59,7 +93,7 @@ navigation: - title: Local image mirror location: installconfig-images-mirror.md - - title: Networking + - title: Networks location: installconfig-networking.md children: @@ -91,56 +125,12 @@ navigation: - title: STP location: installconfig-network-stp.md + - title: Zones + location: manage-zones.md + - title: Storage location: installconfig-storage.md - - title: Nodes - - children: - - - title: Add nodes - location: nodes-add.md - - - title: BMC power types - location: nodes-power-types.md - - - title: Node overview - location: nodes-overview.md - - - title: Commission nodes - location: nodes-commission.md - - - title: Deploy nodes - location: nodes-deploy.md - - - title: Tags - location: nodes-tags.md - - - title: Kernel boot options - location: nodes-kernel-options.md - - - title: Ubuntu kernels - location: nodes-kernels.md - - - title: Hardware testing - location: nodes-hw-testing.md - - - title: Hardware testing scripts - location: nodes-hw-scripts.md - - - title: Composable hardware - location: nodes-comp-hw.md - - - title: Custom node setup - location: nodes-custom.md - - - title: Manage MAAS - - children: - - - title: Zones - location: manage-zones.md - - title: User accounts location: manage-account.md @@ -153,53 +143,56 @@ navigation: - title: Backup location: manage-backup.md - - title: MAAS CLI - location: manage-cli.md + - title: Concepts & terms + location: intro-concepts.md + + - title: Troubleshoot children: - - title: Common tasks - location: manage-cli-common.md + - title: FAQ + location: troubleshoot-faq.md - - title: Kernel management - location: manage-cli-kernels.md + - title: Getting help + location: troubleshoot-getting-help.md - - title: Image management - location: manage-cli-images.md + - title: Command reference + location: manage-cli.md - - title: Interface management - location: manage-cli-interfaces.md + children: - - title: Tag management - location: manage-cli-tags.md + - title: Common tasks + location: manage-cli-common.md - - title: DHCP snippet management - location: manage-cli-dhcp-snippets.md + - title: Kernel management + location: manage-cli-kernels.md - - title: Hardware testing scripts - location: nodes-hw-scripts-cli.md + - title: Image management + location: manage-cli-images.md - - title: Script metadata - location: nodes-hw-scripts-fields.md + - title: Interface management + location: manage-cli-interfaces.md - - title: Advanced tasks - location: manage-cli-advanced.md + - title: Tag management + location: manage-cli-tags.md - - title: Composable hardware - location: manage-cli-comp-hw.md + - title: DHCP snippet management + location: manage-cli-dhcp-snippets.md - - title: API client - location: manage-libmaas.md + - title: Hardware testing scripts + location: nodes-hw-scripts-cli.md - - title: Troubleshoot + - title: Script metadata + location: nodes-hw-scripts-fields.md - children: + - title: Advanced tasks + location: manage-cli-advanced.md - - title: FAQ - location: troubleshoot-faq.md + - title: Composable hardware + location: manage-cli-comp-hw.md - - title: Getting help - location: troubleshoot-getting-help.md + - title: API client + location: manage-libmaas.md - title: API documentation location: api.md @@ -214,9 +207,6 @@ navigation: - title: Release notes location: release-notes.md - + - title: Help improve these docs location: contributing-writing.md - - - title: Report a docs issue - location: https://github.com/CanonicalLtd/maas-docs/issues/new From 73e57f3374b28358fa99ab875b33af7b96f7029e Mon Sep 17 00:00:00 2001 From: Graham Morrison Date: Thu, 25 Jan 2018 13:15:15 +0000 Subject: [PATCH 12/12] updated menu, removed commented out potential items. --- en/metadata.yaml | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/en/metadata.yaml b/en/metadata.yaml index 6616968c..774d7e5f 100644 --- a/en/metadata.yaml +++ b/en/metadata.yaml @@ -1,5 +1,6 @@ navigation: - title: Get started + location: index.md children: @@ -9,20 +10,6 @@ navigation: - title: Requirements location: intro-requirements.md - # - title: Explore MAAS - - # - title: Quick guides - - # children: - - # - title: Create a pod - - # - title: Juju with MAAS - - # - title: Space isolation - - # - title: Deploy OpenStack - - title: User guide location: installconfig-install.md @@ -38,9 +25,6 @@ navigation: - title: Rack controller location: installconfig-rack.md - # - title: Region controller - # location: - - title: Nodes children: