Files
JFrog-Cloud-Installers/Terraform/README.md
2018-01-29 15:03:57 -08:00

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.