Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modularize Deploying Foreman on AWS guide #3469

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@
* Connecting different regions

ifndef::satellite[]
include::../common/modules/snip_red-hat-images.adoc[]
include::snip_red-hat-images.adoc[]
endif::[]

.Scenario 1: One-region setup

image::aws-single-region-satellite.png[One-region setup]
image::common/aws-single-region-satellite.png[One-region setup]

The least complex configuration of {ProjectServer} in Amazon Web Services consists of both {ProjectServer} and the content hosts residing within the same region and within the Virtual Private Cloud (VPC).

Expand All @@ -27,11 +27,11 @@

*Option 1: Site-to-site VPN connection between the AWS region and the on-premises datacenter*

image::aws-combined-vpn-satellite.png[Site-to-site VPN connection between the AWS region and the on-premises datacenter]
image::common/aws-combined-vpn-satellite.png[Site-to-site VPN connection between the AWS region and the on-premises datacenter]

Check failure on line 30 in guides/common/modules/con_deployment-scenarios.adoc

View workflow job for this annotation

GitHub Actions / linter

[vale] reported by reviewdog 🐶 [RedHat.TermsErrors] Use 'data center' rather than 'datacenter'. Raw Output: {"message": "[RedHat.TermsErrors] Use 'data center' rather than 'datacenter'.", "location": {"path": "guides/common/modules/con_deployment-scenarios.adoc", "range": {"start": {"line": 30, "column": 117}}}, "severity": "ERROR"}

*Option 2: Direct connection using the external DNS host name*

image::aws-combined-direct-satellite.png[Direct connection using the external DNS host name]
image::common/aws-combined-direct-satellite.png[Direct connection using the external DNS host name]

.Scenario 3: Connecting different regions

Expand All @@ -47,8 +47,8 @@

*Option 1: Site-to-site VPN connection between AWS regions*

image::aws-multi-region-vpn-satellite.png[Site-to-site VPN connection between AWS regions]
image::common/aws-multi-region-vpn-satellite.png[Site-to-site VPN connection between AWS regions]

*Option 2: Direct connection using the external DNS host name*

image::aws-multi-region-direct-satellite.png[Direct connection using the external DNS host name]
image::common/aws-multi-region-direct-satellite.png[Direct connection using the external DNS host name]
18 changes: 18 additions & 0 deletions guides/common/modules/con_foreman-on-aws-assumptions.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
= Amazon Web Service Assumptions
maximiliankolb marked this conversation as resolved.
Show resolved Hide resolved

To use this guide, you must have a working knowledge of the following aspects of Amazon Web Services:
maximiliankolb marked this conversation as resolved.
Show resolved Hide resolved

* Creating and accessing {RHEL} images in AWS
* Editing network access in AWS Security
* Creating EC2 instances and how to create EBS volumes
maximiliankolb marked this conversation as resolved.
Show resolved Hide resolved
* Launching instances
* Importing and exporting virtual machines in AWS
* Using AWS Direct Connect

To install {Project} in an AWS environment, you must ensure that your AWS set up meets the {InstallingServerDocURL}system-requirements_{project-context}[System Requirements] in _{InstallingServerDocTitle}_.

To install {SmartProxy} in an AWS environment, you must ensure that your AWS set up meets the {InstallingSmartProxyDocURL}system-requirements_{smart-proxy-context}[System Requirements] in _{InstallingSmartProxyDocTitle}_.

For more information about Amazon Web Services and terminology, see https://aws.amazon.com/documentation/ec2/[Amazon Elastic Compute Cloud Documentation].

For more information about Amazon Web Services Direct Connect, see https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html[What is AWS Direct Connect?]
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
= {ProjectName}-specific prerequisites

* Ensure that the Amazon EC2 instance type meets or exceeds the {InstallingServerDocURL}system-requirements_{project-context}[System Requirements] in _{InstallingServerDocTitle}_.
For the best performance, use an https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/storage-optimized-instances.html[AWS storage optimized instance].
ifndef::foreman-deb[]
* Use {InstallingServerDocURL}satellite-storage-requirements_{project-context}[Storage Requirements] in _{InstallingServerDocTitle}_ to understand and assign the correct storage to your AWS EBS volumes.
* Store the synced content on an EBS volume that is separate to the boot volume.
* Mount the synced content EBS volume separately in the operating system.
* Optional: Store other data on a separate EBS volume.
endif::[]
* If you want {ProjectServer} and {SmartProxyServer} to communicate using external DNS hostnames, open the required ports for communication in the AWS Security Group that is associated with the instance.
4 changes: 4 additions & 0 deletions guides/common/modules/con_foreman-on-aws-prerequisites.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[[Prerequisites]]
maximiliankolb marked this conversation as resolved.
Show resolved Hide resolved
= Prerequisites

Before you can install and register {ProjectName} and {SmartProxy}, you must set up accounts with Amazon Web Services (AWS) and create and start {RHEL} instances on AWS.
maximiliankolb marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
= Red Hat Cloud prerequisites

To use this guide, you must complete the following steps:

* Register with Red Hat Cloud Access.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be outside the scope of your PR but I don't think we should refer to these items as prerequisites. I would be inclined to turn this into a note along these lines:

You must use Red Hat Cloud subscriptions and certified images. For more information, see ...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume that this is Satellite-specific. -> no change for now, but would apply suggestions/patches.

* Migrate any Red Hat subscriptions that you want to use.
* Create an AWS instance and deploy a {RHEL} virtual machine to the instance.
* Ensure that your subscriptions are eligible for transfer to Red Hat Cloud.
For more information, see https://www.redhat.com/en/technologies/cloud-computing/cloud-access#program-details[Red Hat Cloud Access Program Details].

For more information about deploying {RHEL} in AWS, see https://access.redhat.com/articles/2962171[How to Locate Red Hat Cloud Access Gold Images on AWS EC2].
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[[Use_Case_Considerations]]
= Use Case Considerations

Because Amazon Web Services is an image-only service, there are common {Project} use cases that do not work, or require extra configuration in an Amazon Web Service environment.
If you plan to use {Project} on AWS, ensure that the use case scenarios that you want to use are available in an AWS environment.
Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
[[Use_Case_Considerations]]
= Use Case Considerations

Because Amazon Web Services is an image-only service, there are common {Project} use cases that do not work, or require extra configuration in an Amazon Web Service environment.
If you plan to use {Project} on AWS, ensure that the use case scenarios that you want to use are available in an AWS environment.

== Use Cases Known to Work
= Use Cases Known to Work

You can perform the following {ProjectName} use cases on AWS:

Expand Down Expand Up @@ -60,17 +54,3 @@ When you set the download policy to *On Demand*, content syncs to {ProjectServer

For more information, see {ContentManagementDocURL}Importing_Content_content-management[Importing Content] in _{ContentManagementDocTitle}_.
endif::[]

== Use Cases that Do Not Work

In AWS, you cannot manage the DHCP.
Because of this, most of Kickstart and PXE provisioning models of {ProjectServer} are unusable.
This includes:

* PXE Provisioning
* Discovery and Discovery Rules
* ISO Provisioning methods.
** PXE-Less Discovery (iPXE)
** Per-host ISO
** Generic ISO
** Full-host ISO
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
= Use Cases that Do Not Work
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think Ewoud recommended not including this section because some of the 'unusable' use cases will work with certain workarounds. Sections like this also create maintenance issues because they are never updated. In theory, we could put all the limitations for cloud providers in a single section.

This is just a comment, not a recommendation.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is out of scope for me follow-up PR. -> no change yet.


In AWS, you cannot manage the DHCP.
Because of this, most of Kickstart and PXE provisioning models of {ProjectServer} are unusable.
This includes:

* PXE Provisioning
* Discovery and Discovery Rules
* ISO Provisioning methods.
** PXE-Less Discovery (iPXE)
** Per-host ISO
** Generic ISO
** Full-host ISO
17 changes: 17 additions & 0 deletions guides/common/modules/proc_preparing-foreman-server-on-aws.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
= Preparing for the {ProjectName} Installation

In your AWS environment, complete the following steps:

. Launch an EC2 instance of a {RHEL} AMI.
. Connect to the newly created instance.
. If you use a Red Hat Gold Image, remove the RHUI client and set the `enabled` parameter in the `product-id.conf` to `1`.
+
[options="nowrap" subs="+quotes,attributes"]
-----
# {client-package-remove-el8} -y rh-amazon-rhui-client*
# dnf clean all
# cat << EOF > /etc/yum/pluginconf.d/product-id.conf
> [main]
> enabled=1
> EOF
-----
28 changes: 22 additions & 6 deletions guides/doc-Deploying_Project_on_AWS/master.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,31 @@ ifdef::satellite[]
include::common/modules/proc_providing-feedback-on-red-hat-documentation.adoc[leveloffset=+1]
endif::[]

include::topics/AWS_Use_Case_Considerations.adoc[leveloffset=+1]
include::common/modules/con_foreman-on-aws-use-case-considerations.adoc[leveloffset=+1]

include::topics/AWS_Deployment_Scenarios.adoc[leveloffset=+1]
include::common/modules/con_supported-use-cases-for-deploying-foreman-on-aws.adoc[leveloffset=+2]

include::topics/AWS_Prerequisites.adoc[leveloffset=+1]
include::common/modules/con_unsupported-use-cases-for-deploying-foreman-on-aws.adoc[leveloffset=+2]

include::topics/AWS_Installing_Satellite_AWS.adoc[leveloffset=+1]
include::common/modules/con_deployment-scenarios.adoc[leveloffset=+1]

include::topics/AWS_Installing_Capsule_on_AWS.adoc[leveloffset=+1]
include::common/modules/con_foreman-on-aws-prerequisites.adoc[leveloffset=+1]

include::topics/AWS-registering-hosts.adoc[leveloffset=+1]
include::common/modules/con_foreman-on-aws-assumptions.adoc[leveloffset=+2]

ifndef::foreman-deb[]
include::common/modules/con_foreman-on-aws-rh-cloud-prerequisites.adoc[leveloffset=+2]
endif::[]

include::common/modules/con_foreman-on-aws-prerequisites-for-foreman-server.adoc[leveloffset=+2]

ifndef::foreman-deb[]
include::common/modules/proc_preparing-foreman-server-on-aws.adoc[leveloffset=+2]
endif::[]

include::common/modules/con_installing-foreman-server-on-aws.adoc[leveloffset=+1]

include::common/modules/con_installing-smart-proxy-server-on-aws.adoc[leveloffset=+1]

include::common/modules/con_foreman-on-aws-registering-hosts.adoc[leveloffset=+1]
endif::[]
69 changes: 0 additions & 69 deletions guides/doc-Deploying_Project_on_AWS/topics/AWS_Prerequisites.adoc

This file was deleted.

Loading