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
Copy file name to clipboardExpand all lines: jekyll/_cci2/non-aws.md
-136Lines changed: 0 additions & 136 deletions
Original file line number
Diff line number
Diff line change
@@ -11,139 +11,3 @@ version:
11
11
---
12
12
13
13
If you would like to work with a CircleCI Solutions Engineer on setting up CircleCI Server in a non-AWS environment, get started by [opening a support ticket](https://support.circleci.com/hc/en-us/requests/new).
14
-
15
-
<!---
16
-
This article provides a System Administrators' overview of CircleCI's 2.0 static installation for non-AWS environments.
17
-
18
-
* TOC
19
-
{:toc}
20
-
21
-
22
-
## Limitations
23
-
24
-
This method of installation has the following limitations:
25
-
26
-
- It is not possible to use `machine` executors (Linux, Windows, macOS)
27
-
- It is not possible to use the Remote Docker Environment or Docker Layer Caching (in other words, you can't build Docker images).
28
-
- There is no first-class high-availability option.
29
-
30
-
CircleCI 2.0 provides new infrastructure that includes the following improvements:
31
-
32
-
* New configuration with any number of jobs and workflows to orchestrate them.
33
-
* Custom images for execution on a per-job basis.
34
-
* Fine-grained performance with dependency caching and per-job CPU or memory allocation.
35
-
36
-
## Build Environments
37
-
38
-
By default, CircleCI 2.0's Nomad Client instances automatically provision containers according to the image configured for each job in your `.circleci/config.yml` file. CircleCI uses Nomad as the primary job scheduler in CircleCI 2.0. Refer to the [Introduction to Nomad Cluster Operation]({{ site.baseurl }}/2.0/nomad/) to learn more about the job scheduler and how to perfom basic client and cluster operations.
39
-
40
-
## Architecture
41
-
42
-
A CircleCI static installation consists of two primary components: Services and Nomad Clients. Services run on a single instance that is comprised of the core application, storage, and networking functionality. Any number of Nomad Clients execute jobs and communicate back to the Services machine. Both components must access an instance of GitHub or GitHub Enterprise on the network as illustrated in the following architecture diagram.
43
-
44
-

45
-
46
-
### Services
47
-
48
-
The machine on which the Services instance runs should only be restarted gracefully and may be backed up using built-in VM snapshotting. **Note:** It is possible to configure external data storage with PostgreSQL and Mongo for high availability and then use standard tooling for database backups, see [Adding External Database Hosts for High Availability]({{ site.baseurl }}/2.0/high-availability/). DNS resolution must point to the IP address of the machine on which the Services are installed. The following table describes the ports used for traffic on the Service instance:
The Nomad Client instances run without storing state, enabling you to increase or decrease containers as needed. To ensure that there are enough client machines running to handle all of the builds, track the queued builds, and increase the client machines as needed to balance the load.
63
-
64
-
Each machine on which the Nomad Clients are installed reserves two CPUs and 4GB of memory for coordinating builds. The remaining processors and memory create the containers. Larger machines are able to run more containers and are limited by the number of available cores after two are reserved for coordination. The following table describes the ports used on the Nomad client instances:
| End Users | 64535-65535 | [SSH into builds feature](https://circleci.com/docs/2.0/ssh-access-jobs/) |
70
-
| Administrators | 80 or 443 | CircleCI API Access (graceful shutdown, etc) |
71
-
| Administrators | 22 | SSH |
72
-
| Services VM | 4647, 8585, 7171, 3001 | Internal Communication |
73
-
{: class="table table-striped"}
74
-
75
-
### GitHub
76
-
77
-
CircleCI uses GitHub or GitHub Enterprise credentials for
78
-
authentication which, in turn, may use LDAP, SAML, or SSH for access. CircleCI will inherit the authentication supported by your central SSO infrastructure. The following table describes the ports used on machines running GitHub to communicate with the Services and Nomad client instances.
79
-
80
-
81
-
| Source | Ports | Use |
82
-
|---------------|---------|--------------|
83
-
| Services | 22 | Git Access |
84
-
| Services | 80, 443 | API Access |
85
-
| Nomad Client | 22 | Git Access |
86
-
| Nomad Client | 80, 443 | API Access |
87
-
{: class="table table-striped"}
88
-
89
-
90
-
## Installation
91
-
92
-
The following sections describe the steps for installation of the Services VM and the Nomad cluster.
93
-
94
-
### Prerequisites
95
-
96
-
Have the following available before beginning the installation procedure:
97
-
98
-
- A Platinum CircleCI support agreement. Contact CircleCI support or your account representative to get started.
99
-
- A CircleCI License file (.rli). Contact CircleCI support if you need a license.
100
-
- A machine to run Ubuntu 14.04 or 16.04 with a minimum of at least 100 GB storage, 32 GB RAM, and 4 CPUs (8 CPUs preferred) for the Services VM.
101
-
- A cluster of machines running Ubuntu 14.04 or 16.04 with a minumum of 8 GB RAM and 4 CPUs each, as well as network access to any Docker registries that are required by your builds for the Nomad Client VMs.
102
-
103
-
### Installing the Services Machine
104
-
105
-
1. Copy the [Services init script](https://github.com/circleci/server-static-install/blob/master/provision-services-ubuntu.sh) to the Services VM machine.
106
-
107
-
2. Log in to the machine provisioned for the Services VM and run the `sudo su` command.
108
-
109
-
3. Run `./provision-services-ubuntu.sh` to start the script.
110
-
111
-
4. Go to the public IP of the host on port 8800 using HTTPS. You may need to configure a firewall rule or other public Internet gateway to enable access to the services host.
112
-
113
-
5. You will see a page about bypassing the browser's TLS warning. If you'd like, you can copy the command below that into your terminal to verify the certificate's authenticity.
114
-
115
-
6. Enter your license.
116
-
117
-
7. On the Replicated settings page, enter the following information:
118
-
- Hostname: either an IP address or your hostname if you've configured DNS records for a domain.
119
-
- Services: make sure all boxes are checked.
120
-
- Execution Engines: make sure 1.0 is unchecked and 2.0 is checked.
121
-
- 2.0 Builders: make sure this is set to "Cluster".
122
-
- GitHub Integration: Follow the instructions in the description and fill in the details.
123
-
- Storage: if you're running this installation in Amazon, you can configure an S3 bucket to store build artifacts and files. If not, set to "None".
124
-
- VM Provider: set to "None".
125
-
126
-
8. Any sections not explicitly mentioned above can be configured or left alone per your needs.
127
-
128
-
9. Accept the License Agreement, and click "Save".
129
-
130
-
### Installing the Nomad Clients
131
-
132
-
1. Copy the [Client init script](https://github.com/circleci/server-static-install/blob/master/provision-nomad-client-ubuntu.sh) to the Nomad Server machine.
133
-
134
-
2. Log in to the machine provisioned for the Nomad Server and run the `sudo su` command.
135
-
136
-
3. To start the script, set the `NOMAD_SERVER_ADDRESS` environment variable to the routable IP of the Services machine you set up in the last section. Then, run `./provision-nomad-client-ubuntu.sh` (for example, `NOMAD_SERVER_ADDRESS=1.2.3.4 ./provision-nomad-client-ubuntu.sh`).
137
-
138
-
### Storage
139
-
140
-
The `None` storage driver saves all of your CircleCI data locally. This means that artifacts, test results, and action logs will be saved locally at `/data/circle/storage-fileserver`. It is best practice to mount an external volume and create a symbolic link between the two when using this storage option. **Note:** Data may only be transferred as quickly as the external volume will allow, so SSDs are best practice.
141
-
142
-
### Troubleshooting
143
-
144
-
This section includes some possible resolutions for common issues that may be encountered during system setup and installation.
145
-
146
-
- Symptom: Jobs stay in `queued` status until they fail and never successfully run.
147
-
- Check port 8585 if the nomad client logs contain the following type of error message:
148
-
- {"error":"rpc error: code = Unavailable desc = grpc: the connection is unavailable","level":"warning","msg":"error fetching config, retrying","time":"2018-04-17T18:47:01Z"}
0 commit comments