diff --git a/Ansible/awsPipelines.yaml b/Ansible/awsPipelines.yaml deleted file mode 100644 index 3141c08..0000000 --- a/Ansible/awsPipelines.yaml +++ /dev/null @@ -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." \ No newline at end of file diff --git a/Ansible/azurePipelines.yaml b/Ansible/azurePipelines.yaml deleted file mode 100644 index f857fe6..0000000 --- a/Ansible/azurePipelines.yaml +++ /dev/null @@ -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." \ No newline at end of file diff --git a/Ansible/collection/README.md b/Ansible/collection/README.md index 2ab5fa1..edae0e5 100644 --- a/Ansible/collection/README.md +++ b/Ansible/collection/README.md @@ -66,6 +66,13 @@ eg. 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 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: diff --git a/Ansible/pipelines.yaml b/Ansible/pipelines.yaml index f857fe6..3fd14a5 100644 --- a/Ansible/pipelines.yaml +++ b/Ansible/pipelines.yaml @@ -5,8 +5,53 @@ resources: gitProvider: jefferyfryGithub path: jefferyfry/JFrog-Cloud-Installers pipelines: - - name: ansible_azure_automation_pipeline + - name: ansible_aws_azure_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." - name: execute_azure_ansible_playbook type: Bash configuration: diff --git a/Ansible/project/rt-xray-auto-keys/hosts.yml b/Ansible/project/rt-xray-auto-keys/hosts.yml new file mode 100644 index 0000000..76babec --- /dev/null +++ b/Ansible/project/rt-xray-auto-keys/hosts.yml @@ -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" diff --git a/Ansible/project/rt-xray-auto-keys/playbook.yml b/Ansible/project/rt-xray-auto-keys/playbook.yml new file mode 100644 index 0000000..10dc19d --- /dev/null +++ b/Ansible/project/rt-xray-auto-keys/playbook.yml @@ -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 \ No newline at end of file diff --git a/Ansible/project/rt-xray-auto-keys/runAutoKeysPlaybook.sh b/Ansible/project/rt-xray-auto-keys/runAutoKeysPlaybook.sh new file mode 100755 index 0000000..0949cb0 --- /dev/null +++ b/Ansible/project/rt-xray-auto-keys/runAutoKeysPlaybook.sh @@ -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)" \ No newline at end of file diff --git a/Ansible/test/aws/playbook.yaml b/Ansible/test/aws/playbook.yaml index 8474438..fafe557 100644 --- a/Ansible/test/aws/playbook.yaml +++ b/Ansible/test/aws/playbook.yaml @@ -144,4 +144,5 @@ - name: Cleanup and delete stack cloudformation: stack_name: "{{ lookup('env', 'stack_name') }}" + region: "us-east-1" state: "absent" \ No newline at end of file diff --git a/Ansible/test/azure/playbook.yaml b/Ansible/test/azure/playbook.yaml index ae9625d..f4eb24a 100644 --- a/Ansible/test/azure/playbook.yaml +++ b/Ansible/test/azure/playbook.yaml @@ -155,7 +155,8 @@ shell: cmd: ./gradlew clean unified_test chdir: ../tests/ - - name: Cleanup and delete a resource group + - name: Cleanup and delete resource group azure_rm_resourcegroup: name: "{{ lookup('env', 'azure_resource_group') }}" + force_delete_nonempty: yes state: absent \ No newline at end of file diff --git a/Ansible/test/tests/src/test/groovy/tests/RepositoryTest.groovy b/Ansible/test/tests/src/test/groovy/tests/RepositoryTest.groovy index e6c6c3a..3deb72a 100644 --- a/Ansible/test/tests/src/test/groovy/tests/RepositoryTest.groovy +++ b/Ansible/test/tests/src/test/groovy/tests/RepositoryTest.groovy @@ -120,7 +120,7 @@ class RepositoryTest extends RepositorySteps{ 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(){ def repoName = "generic-dev-local" def directoryName = "test-directory/" @@ -161,9 +161,9 @@ class RepositoryTest extends RepositorySteps{ + directoryName + "/" + filename)) 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(){ def repoName = "generic-dev-local" def directoryName = "test-directory" @@ -176,9 +176,9 @@ class RepositoryTest extends RepositorySteps{ .body("errors[0].message", equalToIgnoringCase("Unable to find item")) 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(){ def name = "Support Bundle" LocalDate startDate = LocalDate.now().minusDays(5) @@ -188,7 +188,7 @@ class RepositoryTest extends RepositorySteps{ .body("artifactory.bundle_url", containsString(artifactoryURL)) Reporter.log("- Create support bundle. Successfully created", true) - } + }*/ @Test(priority=8, groups=["jcr"], testName = "Create support bundle") void createSupportBundleJCATest(){ @@ -270,7 +270,7 @@ class RepositoryTest extends RepositorySteps{ 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(){ def repoName = "generic-dev-local" def directoryName = "test-directory/" @@ -281,9 +281,9 @@ class RepositoryTest extends RepositorySteps{ .body("uri", equalTo("http://" + artifactoryURL + ":80/artifactory/" + repoName + "/" + directoryName)) 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(){ def repoName = "generic-dev-local" def directoryName = "test-directory" @@ -296,7 +296,7 @@ class RepositoryTest extends RepositorySteps{ + directoryName + "/" + filename)) Reporter.log("- Deploy artifact. Artifact successfully deployed", true) - } + }*/ }