You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This article is about deploying a controller as a Linux system service.[The controller introduction](/learn/introduction/03-components.mdx#controller) may be helpful to read first.
11
+
This article is about deploying a controller as a Linux system service.
12
12
13
13
We'll cover the following topics:
14
14
@@ -40,40 +40,48 @@ Finally, install the package: **openziti-controller**
40
40
41
41
You must generate, migrate, or craft a configuration. Configuration consists of a PKI, a config YAML file, and a database.
42
42
43
-
### Generate a Configuration
43
+
### Generate a Configuration for the First Node in a New Cluster
44
44
45
-
This is the recommended approach if you are installing a new controller.
45
+
This is the simplest approach if you are installing a new controller as the first node in a new cluster and do not wish to craft a configuration from scratch.
46
46
47
47
#### Answer Interactively
48
48
49
-
Run `bootstrap.bash`to be prompted for the required values.
49
+
Run `bootstrap.bash`and answer prompts.
50
50
51
51
```text
52
52
sudo /opt/openziti/etc/controller/bootstrap.bash
53
53
```
54
54
55
+
```buttonless title="Output"
56
+
Create a new cluster (NO if joining a cluster) [Y/n]:
57
+
```
58
+
55
59
#### Answer Non-interactively
56
60
57
-
1. Set the required values in the answer file **/opt/openziti/etc/controller/bootstrap.env**.
58
-
1.`ZITI_CTRL_ADVERTISED_ADDRESS` - control plane permanent DNS name (required)
61
+
1. Set the required values in the answer file **/opt/openziti/etc/controller/bootstrap.env** or export as environment variables.
62
+
1.`ZITI_CTRL_ADVERTISED_ADDRESS` - control plane address (required, ex: `ctrl1.ziti.example.com`)
59
63
1.`ZITI_CTRL_ADVERTISED_PORT` - listener TCP port (default: 1280)
### Generate a Configuration for a New Node in an Existing Cluster
75
+
76
+
77
+
68
78
### Migrate an Existing Configuration
69
79
70
80
[This example](./70-migrate.mdx) illustrates copying the PKI, configuration, and database from a previous installation to the controller service's working directory.
71
81
72
82
### Craft a Configuration
73
83
74
-
Craft a new configuration by running `ziti create config controller`.
75
-
76
-
Review the environment variables, especially those named like `ZITI_CTRL_*`, that influence the controller configuration with `ziti create config environment`.
84
+
Craft a new configuration from scratch or start with a sane set of default values by running `ziti create config controller --clustered`.
77
85
78
86
Here's a link to [the controller configuration reference](/reference/30-configuration/controller.md).
Copy file name to clipboardExpand all lines: docusaurus/docs/deployments/20-controller/70-migrate.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ title: Migrate a Controller Installation
3
3
sidebar_label: Migrate
4
4
---
5
5
6
-
Here's an example of migrating an existing controller's configuration to the Linux service's working directory.
6
+
Here's an example of migrating an existing controller's configuration to the Linux service's working directory. Similarly, you could migrate a configuration to a Docker volume.
7
7
8
8
1. Remove the quickstart controller service if you followed the BASH quickstart to create **/etc/systemd/system/ziti-controller.service**.
9
9
1. Follow [the Linux controller deployment guide](/deployments/20-controller/20-linux.mdx) to install the controller service.
These requirements apply to all controller deployments. Check out the [Linux](/deployments/20-controller/20-linux.mdx), [Docker](/deployments/20-controller/40-docker.mdx), and [Kubernetes](/deployments/20-controller/60-kubernetes.mdx) articles for more details.
9
+
6
10
## Requirements
7
11
8
12
1. a root CA for the cluster
9
-
1. a signer CA certificate, identity certificate, and configuration YAML file for each node
13
+
1. a signer CA certificate, identity certificates, and configuration YAML file for each node
10
14
1. an initialized database on the first node, replicated to subsequent nodes
11
15
12
-
## The Cluster Root CA Certificate
16
+
###The Cluster Root CA Certificate
13
17
14
18
Before provisioning your first node, you must [create a new public key infrastructure](/reference/ha/bootstrapping/certificates.md) (PKI) for the cluster. This includes a root CA certificate and private key.
15
19
16
20
The cluster's root CA is never required on any node. For security, secure the root CA separately from the deployment environment, not on the first node. For convenience, the root CA may be co-located with the first node in the cluster.
17
21
18
-
## The Edge Enrollment Signer CA Certificate
22
+
###The Edge Enrollment Signer CA Certificate
19
23
20
24
Each node must have an edge enrollment signer CA certificate issued by [the cluster's root CA](/reference/ha/bootstrapping/certificates.md). In the configuration YAML file, [the property `edge.enrollment.signingCert`](/reference/30-configuration/controller.md) configures the edge signer CA certificate and private key. The edge signer CA issues leaf certificates during identity and router enrollment.
21
25
22
-
## The Controller's Identity Certificate
26
+
###The Controller's Identity Certificates
23
27
24
-
This is a leaf certificate from the edge enrollment signer CA. In the configuration YAML file, [the property `identity`](/reference/30-configuration/conventions.md) configures the controller's identity certificate and private key.
28
+
These are leaf certificates from the edge enrollment signer CA. In the configuration YAML file, [the property `identity`](/reference/30-configuration/conventions.md) configures the controller's identity certificates and private keys.
25
29
26
-
## The Configuration YAML File
30
+
###The Configuration YAML File
27
31
28
32
[The configuration YAML file](/reference/30-configuration/controller.md) is required for all nodes. It is used to configure the controller's signing cert, identity, database, listener addresses, and more.
0 commit comments