mirror of
https://github.com/ZwareBear/JFrog-Cloud-Installers.git
synced 2026-01-21 00:06:55 -06:00
85 lines
3.8 KiB
Markdown
85 lines
3.8 KiB
Markdown
# Terraform Template For Artifactory Enterprise
|
|
|
|
### Prerequisites:
|
|
* AWS account
|
|
* Basic knowledge to AWS
|
|
* Pre created Keys
|
|
* Basic knowledge of Artifactory
|
|
* Learn about [system requirements for Artifactory](https://www.jfrog.com/confluence/display/RTF/System+Requirements#SystemRequirements-RecommendedHardware)
|
|
|
|
### Steps to Deploy Artifactory Enterprise using Terraform template
|
|
|
|
1. Set your AWS account credentials.
|
|
Easy way to do it is by setting environment variables.
|
|
```
|
|
export AWS_ACCESS_KEY_ID="your_access_key"
|
|
export AWS_SECRET_ACCESS_KEY="your_secret_key"
|
|
export AWS_DEFAULT_REGION="aws_region"
|
|
```
|
|
To learn more about Terraform aws provider follow there documentation.
|
|
https://www.terraform.io/docs/providers/aws/index.html
|
|
|
|
2. Make Changes in `variables.tf` file to change default values to desired once. Also pass Artifactory Enterprise licenses as string in Variables `artifactory_license_1-5`."
|
|
e.g Change disk space to 500Gb:
|
|
```
|
|
variable "volume_size" {
|
|
description = "Disk size for each EC2 instances"
|
|
default = 500
|
|
}
|
|
```
|
|
|
|
3. Run command `terraform init -var 'key_name=myAwsKey'`
|
|
This is install required plugin for AWS provider.
|
|
|
|
4. Run command `terraform plan -var 'key_name=myAwsKey'`.
|
|
|
|
5. Run command `terraform apply -var 'key_name=myAwsKey'` to deploy Artifactory Enterprise cluster on AWS.
|
|
|
|
It will take approximately 15 min to bring up cluster.
|
|
|
|
You will get ELB Url to access Artifactory.By default This template will start only 1 node in Artifactory cluster.
|
|
```
|
|
Outputs:
|
|
|
|
address = artifactory-elb-265664219.us-west-2.elb.amazonaws.com
|
|
```
|
|
|
|
6. Access Artifactory UI using ELB Url provided in outputs.
|
|
|
|
7. Scale your cluster using following command:
|
|
|
|
`terraform apply -var 'key_name=myAwsKey' -var 'secondary_node_count=2'`
|
|
|
|
In this example we are scaling artifactory cluster to 2 nodes.
|
|
|
|
Note: You can only scale nodes to number of artifactory licenses you have available for cluster.
|
|
|
|
8. SSH into Artifactory primary instance and write [inactiveServerCleaner](inactiveServerCleaner.groovy) plugin in '/var/opt/jfrog/artifactory/etc/plugins' directory.
|
|
|
|
9. Command to destroy cluster:
|
|
`terraform destroy -var 'key_name=myAwsKey'`
|
|
|
|
### Note:
|
|
1. This template only supports Artifactory version 5.8.x and above.
|
|
2. Turn off daily backups. Read Documentation provided [here](https://www.jfrog.com/confluence/display/RTF/Managing+Backups)
|
|
3. Use SSL Certificate with valid wild card to you artifactory as docker registry with subdomain method.
|
|
|
|
### Steps to setup Artifactory as secure docker registry
|
|
considering you have SSL certificate for `*.jfrog.team`
|
|
1. Pass your SSL Certificate in variable `ssl_certificate` as string
|
|
2. Pass your SSL Certificate Key in variable `ssl_certificate_key` as string
|
|
3. Set `certificate_domain` as `jfrog.team`
|
|
4. Set `artifactory_server_name` as `artifactory` if you want to access artifactory with `https://artifactory.jfrog.team`
|
|
5. Create DNS for example Route53 with entry `artifactory.jfrog.team` pointing to ELB value provided as output in CloudFormation Stack.
|
|
6. Create DNS for example Route53 with entry `*.jfrog.team` pointing to ELB value provided as output in CloudFormation Stack.
|
|
7. If you have virtual docker registry with name `docker-virtual` in artifactory. You can access it via `docker-virtual.jfrog.team`
|
|
e.g ```docker pull docker-virtual.jfrog.team/nginx```
|
|
|
|
|
|
### Steps to upgrade Artifactory Version
|
|
1. Change value of `artifactory_version` from old version to new Artifactory version you want to deploy.
|
|
for e.g. 5.8.1 to 5.8.2
|
|
Run command `terraform apply -var 'key_name=myAwsKey' -var 'secondary_node_count=2' -ver 'artifactory_version=5.8.2'`.
|
|
|
|
2. You will see instances will get upgraded one by one. Depending on your cluster size it will take 20-30 minutes to update stack.
|
|
|