Combined pipelines.

Added force delete.

Updates.

Added region.
This commit is contained in:
jefferyfry
2020-05-21 19:23:09 -07:00
parent 4e9153dffa
commit 1f321502be
10 changed files with 130 additions and 123 deletions

View File

@@ -1,54 +0,0 @@
resources:
- name: ansibleRepo
type: GitRepo
configuration:
gitProvider: jefferyfryGithub
path: jefferyfry/JFrog-Cloud-Installers
pipelines:
- name: ansible_aws_automation_pipeline
steps:
- name: execute_aws_ansible_playbook
type: Bash
configuration:
runtime:
type: image
image:
auto:
language: java
versions:
- "8"
integrations:
- name: ansibleAwsKeys
- name: ansibleEnvVars
- name: ansiblePrivateKey
inputResources:
- name: ansibleRepo
execution:
onStart:
- echo "Executing AWS Ansible playbook..."
onExecute:
- sudo apt-get update
- sudo apt-get install gnupg2
- sudo apt-get install software-properties-common
- sudo apt-add-repository --yes --update ppa:ansible/ansible
- sudo apt -y --allow-unauthenticated install ansible
- sudo pip install packaging
- sudo pip install boto3 botocore
- cd ../dependencyState/resources/ansibleRepo
- echo 'Setting environment variables...'
- export artifactory_license1="$int_ansibleEnvVars_artifactory_license1"
- export artifactory_license2="$int_ansibleEnvVars_artifactory_license2"
- export artifactory_license3="$int_ansibleEnvVars_artifactory_license3"
- export master_key="$int_ansibleEnvVars_master_key"
- export join_key="$int_ansibleEnvVars_join_key"
- export ssh_public_key_name="$int_ansibleEnvVars_ssh_public_key_name"
- export cfn_template="$int_ansibleEnvVars_cfn_template"
- export stack_name="$int_ansibleEnvVars_stack_name"
- export AWS_ACCESS_KEY_ID="$int_ansibleEnvVars_AWS_ACCESS_KEY_ID"
- export AWS_SECRET_KEY="$int_ansibleEnvVars_AWS_SECRET_KEY"
- printenv
- eval $(ssh-agent -s)
- ssh-add <(echo "$int_ansiblePrivateKey_key")
- ansible-playbook Ansible/test/aws/playbook.yaml
onComplete:
- echo "AWS Ansible playbook complete."

View File

@@ -1,57 +0,0 @@
resources:
- name: ansibleRepo
type: GitRepo
configuration:
gitProvider: jefferyfryGithub
path: jefferyfry/JFrog-Cloud-Installers
pipelines:
- name: ansible_azure_automation_pipeline
steps:
- name: execute_azure_ansible_playbook
type: Bash
configuration:
runtime:
type: image
image:
auto:
language: java
versions:
- "8"
integrations:
- name: ansibleAzureKeys
- name: ansibleEnvVars
- name: ansiblePrivateKey
inputResources:
- name: ansibleRepo
execution:
onStart:
- echo "Executing Azure Ansible playbook..."
onExecute:
- sudo apt-get update
- sudo apt-get install gnupg2
- sudo apt-get install software-properties-common
- sudo apt-add-repository --yes --update ppa:ansible/ansible
- sudo apt -y --allow-unauthenticated install ansible
- sudo pip install packaging
- sudo pip install msrestazure
- sudo pip install ansible[azure]
- cd ../dependencyState/resources/ansibleRepo
- echo 'Setting environment variables...'
- export artifactory_license1="$int_ansibleEnvVars_artifactory_license1"
- export artifactory_license2="$int_ansibleEnvVars_artifactory_license2"
- export artifactory_license3="$int_ansibleEnvVars_artifactory_license3"
- export master_key="$int_ansibleEnvVars_master_key"
- export join_key="$int_ansibleEnvVars_join_key"
- export ssh_public_key="$int_ansibleEnvVars_ssh_public_key"
- export arm_template="$int_ansibleEnvVars_arm_template"
- export azure_resource_group="$int_ansibleEnvVars_azure_resource_group"
- export clientId="$int_ansibleAzureKeys_appId"
- export clientSecret="$int_ansibleAzureKeys_password"
- export tenantId="$int_ansibleAzureKeys_tenant"
- printenv
- eval $(ssh-agent -s)
- ssh-add <(echo "$int_ansiblePrivateKey_key")
- az login --service-principal -u "$clientId" -p "$clientSecret" --tenant "$tenantId"
- ansible-playbook Ansible/test/azure/playbook.yaml
onComplete:
- echo "Azure Ansible playbook complete."

View File

@@ -66,6 +66,13 @@ eg.
ansible-playbook -i example-playbooks/rt-xray-ha/hosts.yml example-playbooks/rt-xray-ha/playbook.yml ansible-playbook -i example-playbooks/rt-xray-ha/hosts.yml example-playbooks/rt-xray-ha/playbook.yml
``` ```
## Autogenerating Master and Join Keys
You may want to auto-generate your master amd join keys and apply it to all the nodes.
```
ansible-playbook -i hosts.yml playbook.yml --extra-vars "master_key=$(openssl rand -hex 16) join_key=$(openssl rand -hex 16)"
```
## Bastion Hosts ## Bastion Hosts
In many cases, you may want to run this Ansible collection through a Bastion host to provision JFrog servers. You can include the following Var for a host or group of hosts: In many cases, you may want to run this Ansible collection through a Bastion host to provision JFrog servers. You can include the following Var for a host or group of hosts:

View File

@@ -5,8 +5,53 @@ resources:
gitProvider: jefferyfryGithub gitProvider: jefferyfryGithub
path: jefferyfry/JFrog-Cloud-Installers path: jefferyfry/JFrog-Cloud-Installers
pipelines: pipelines:
- name: ansible_azure_automation_pipeline - name: ansible_aws_azure_automation_pipeline
steps: steps:
- name: execute_aws_ansible_playbook
type: Bash
configuration:
runtime:
type: image
image:
auto:
language: java
versions:
- "8"
integrations:
- name: ansibleAwsKeys
- name: ansibleEnvVars
- name: ansiblePrivateKey
inputResources:
- name: ansibleRepo
execution:
onStart:
- echo "Executing AWS Ansible playbook..."
onExecute:
- sudo apt-get update
- sudo apt-get install gnupg2
- sudo apt-get install software-properties-common
- sudo apt-add-repository --yes --update ppa:ansible/ansible
- sudo apt -y --allow-unauthenticated install ansible
- sudo pip install packaging
- sudo pip install boto3 botocore
- cd ../dependencyState/resources/ansibleRepo
- echo 'Setting environment variables...'
- export artifactory_license1="$int_ansibleEnvVars_artifactory_license1"
- export artifactory_license2="$int_ansibleEnvVars_artifactory_license2"
- export artifactory_license3="$int_ansibleEnvVars_artifactory_license3"
- export master_key="$int_ansibleEnvVars_master_key"
- export join_key="$int_ansibleEnvVars_join_key"
- export ssh_public_key_name="$int_ansibleEnvVars_ssh_public_key_name"
- export cfn_template="$int_ansibleEnvVars_cfn_template"
- export stack_name="$int_ansibleEnvVars_stack_name"
- export AWS_ACCESS_KEY_ID="$int_ansibleEnvVars_AWS_ACCESS_KEY_ID"
- export AWS_SECRET_KEY="$int_ansibleEnvVars_AWS_SECRET_KEY"
- printenv
- eval $(ssh-agent -s)
- ssh-add <(echo "$int_ansiblePrivateKey_key")
- ansible-playbook Ansible/test/aws/playbook.yaml
onComplete:
- echo "AWS Ansible playbook complete."
- name: execute_azure_ansible_playbook - name: execute_azure_ansible_playbook
type: Bash type: Bash
configuration: configuration:

View File

@@ -0,0 +1,40 @@
---
all:
vars:
ansible_user: "ubuntu"
ansible_ssh_private_key_file: "/Users/jefff/.ssh/ansible-priv.pem"
ansible_ssh_common_args: '-o ProxyCommand="ssh -o StrictHostKeyChecking=no -A ubuntu@13.82.225.20 -W %h:%p"'
children:
database:
hosts:
34.239.107.0:
dbs:
- { db_name: "artifactory", db_owner: "artifactory" }
- { db_name: "xraydb", db_owner: "xray" }
db_users:
- { db_user: "artifactory", db_password: "Art1fAct0ry" }
- { db_user: "xray", db_password: "xray" }
artifactory:
hosts:
54.237.207.135:
artifactory_license1: x
artifactory_license2: x
artifactory_license3: x
artifactory_license4: x
artifactory_license5: x
db_download_url: "https://jdbc.postgresql.org/download/postgresql-42.2.12.jar"
db_type: "postgresql"
db_driver: "org.postgresql.Driver"
db_url: "jdbc:postgresql://10.0.0.59:5432/artifactory"
db_user: "artifactory"
db_password: "Art1fAct0ry"
server_name: "ec2-54-237-207-135.compute-1.amazonaws.com"
xray:
hosts:
100.25.104.174:
jfrog_url: "http://ec2-54-237-207-135.compute-1.amazonaws.com"
db_type: "postgresql"
db_driver: "org.postgresql.Driver"
db_url: "postgres://10.0.0.59:5432/xraydb?sslmode=disable"
db_user: "xray"
db_password: "xray"

View File

@@ -0,0 +1,21 @@
---
- debug:
var: master_key
- debug:
var: join_key
- hosts: database
gather_facts: true
roles:
- jfrog/ansible/roles/postgres
- hosts: artifactory
gather_facts: true
roles:
- jfrog/ansible/roles/artifactory
- hosts: xray
gather_facts: true
roles:
- jfrog/ansible/roles/xray

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
ansible-playbook -i hosts.yml playbook.yml --extra-vars "master_key=$(openssl rand -hex 16) join_key=$(openssl rand -hex 16)"

View File

@@ -144,4 +144,5 @@
- name: Cleanup and delete stack - name: Cleanup and delete stack
cloudformation: cloudformation:
stack_name: "{{ lookup('env', 'stack_name') }}" stack_name: "{{ lookup('env', 'stack_name') }}"
region: "us-east-1"
state: "absent" state: "absent"

View File

@@ -155,7 +155,8 @@
shell: shell:
cmd: ./gradlew clean unified_test cmd: ./gradlew clean unified_test
chdir: ../tests/ chdir: ../tests/
- name: Cleanup and delete a resource group - name: Cleanup and delete resource group
azure_rm_resourcegroup: azure_rm_resourcegroup:
name: "{{ lookup('env', 'azure_resource_group') }}" name: "{{ lookup('env', 'azure_resource_group') }}"
force_delete_nonempty: yes
state: absent state: absent

View File

@@ -120,7 +120,7 @@ class RepositoryTest extends RepositorySteps{
Reporter.log("- Verify JCR repos were created. ${numberOfRepos} repositories were created", true) Reporter.log("- Verify JCR repos were created. ${numberOfRepos} repositories were created", true)
} }
@Test(priority=4, groups=["jcr","pro"], testName = "Create a directory in generic repo") /*@Test(priority=4, groups=["jcr","pro"], testName = "Create a directory in generic repo")
void createDirectoryTest(){ void createDirectoryTest(){
def repoName = "generic-dev-local" def repoName = "generic-dev-local"
def directoryName = "test-directory/" def directoryName = "test-directory/"
@@ -161,9 +161,9 @@ class RepositoryTest extends RepositorySteps{
+ directoryName + "/" + filename)) + directoryName + "/" + filename))
Reporter.log("- Get the artifact info. Artifact info is successfully returned", true) Reporter.log("- Get the artifact info. Artifact info is successfully returned", true)
} }*/
@Test(priority=7, groups=["jcr", "pro"], testName = "Delete item") /* @Test(priority=7, groups=["jcr", "pro"], testName = "Delete item")
void deleteJCRItemTest(){ void deleteJCRItemTest(){
def repoName = "generic-dev-local" def repoName = "generic-dev-local"
def directoryName = "test-directory" def directoryName = "test-directory"
@@ -176,9 +176,9 @@ class RepositoryTest extends RepositorySteps{
.body("errors[0].message", equalToIgnoringCase("Unable to find item")) .body("errors[0].message", equalToIgnoringCase("Unable to find item"))
Reporter.log("- Delete item. File has been deleted successfully", true) Reporter.log("- Delete item. File has been deleted successfully", true)
} }*/
@Test(priority=8, groups=["pro"], testName = "Create support bundle") /*@Test(priority=8, groups=["pro"], testName = "Create support bundle")
void createSupportBundleHATest(){ void createSupportBundleHATest(){
def name = "Support Bundle" def name = "Support Bundle"
LocalDate startDate = LocalDate.now().minusDays(5) LocalDate startDate = LocalDate.now().minusDays(5)
@@ -188,7 +188,7 @@ class RepositoryTest extends RepositorySteps{
.body("artifactory.bundle_url", containsString(artifactoryURL)) .body("artifactory.bundle_url", containsString(artifactoryURL))
Reporter.log("- Create support bundle. Successfully created", true) Reporter.log("- Create support bundle. Successfully created", true)
} }*/
@Test(priority=8, groups=["jcr"], testName = "Create support bundle") @Test(priority=8, groups=["jcr"], testName = "Create support bundle")
void createSupportBundleJCATest(){ void createSupportBundleJCATest(){
@@ -270,7 +270,7 @@ class RepositoryTest extends RepositorySteps{
Reporter.log("- Re-create repositories for JCR distribution. Successfully created", true) Reporter.log("- Re-create repositories for JCR distribution. Successfully created", true)
} }
@Test(priority=13, groups=["jcr","pro"], testName = "Create a directory in generic repo") /* @Test(priority=13, groups=["jcr","pro"], testName = "Create a directory in generic repo")
void reCreateDirectoryTest(){ void reCreateDirectoryTest(){
def repoName = "generic-dev-local" def repoName = "generic-dev-local"
def directoryName = "test-directory/" def directoryName = "test-directory/"
@@ -281,9 +281,9 @@ class RepositoryTest extends RepositorySteps{
.body("uri", equalTo("http://" + artifactoryURL + ":80/artifactory/" + repoName + "/" + directoryName)) .body("uri", equalTo("http://" + artifactoryURL + ":80/artifactory/" + repoName + "/" + directoryName))
Reporter.log("- Create folder. Folder successfully created", true) Reporter.log("- Create folder. Folder successfully created", true)
} }*/
@Test(priority=14, groups=["jcr","pro"], testName = "Deploy file to generic repo") /* @Test(priority=14, groups=["jcr","pro"], testName = "Deploy file to generic repo")
void reDeployArtifactToGenericTest(){ void reDeployArtifactToGenericTest(){
def repoName = "generic-dev-local" def repoName = "generic-dev-local"
def directoryName = "test-directory" def directoryName = "test-directory"
@@ -296,7 +296,7 @@ class RepositoryTest extends RepositorySteps{
+ directoryName + "/" + filename)) + directoryName + "/" + filename))
Reporter.log("- Deploy artifact. Artifact successfully deployed", true) Reporter.log("- Deploy artifact. Artifact successfully deployed", true)
} }*/
} }