From d589ce2978ed2b1b45cd0c48ce32fec7d1bf42df Mon Sep 17 00:00:00 2001 From: jefferyfry Date: Thu, 6 Aug 2020 19:49:31 -0700 Subject: [PATCH 01/14] Updated documentation. Add new tests for software upgrades. --- Ansible/README.md | 21 ++- Ansible/pipelines.yaml | 4 +- Ansible/test/aws/playbook-ha-install.yaml | 22 +-- Ansible/test/aws/playbook-ha-upgrade.yaml | 172 ++++++++++++++++++ Ansible/test/aws/runAwsInstall.sh | 11 +- Ansible/test/aws/runAwsUpgrade.sh | 14 ++ .../.gradle/5.2.1/fileChanges/last-build.bin | Bin 1 -> 0 bytes .../.gradle/5.2.1/fileHashes/fileHashes.lock | Bin 17 -> 0 bytes .../test/tests/.gradle/5.2.1/gc.properties | 0 .../6.5/executionHistory/executionHistory.bin | Bin 134537 -> 138306 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/6.5/fileHashes/fileHashes.bin | Bin 23547 -> 23647 bytes .../.gradle/6.5/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../tests/src/test/resources/testenv.yaml | 6 +- .../tests/src/test/resources/testenv_tpl.yaml | 6 + 16 files changed, 237 insertions(+), 19 deletions(-) create mode 100644 Ansible/test/aws/playbook-ha-upgrade.yaml create mode 100755 Ansible/test/aws/runAwsUpgrade.sh delete mode 100644 Ansible/test/tests/.gradle/5.2.1/fileChanges/last-build.bin delete mode 100644 Ansible/test/tests/.gradle/5.2.1/fileHashes/fileHashes.lock delete mode 100644 Ansible/test/tests/.gradle/5.2.1/gc.properties create mode 100644 Ansible/test/tests/src/test/resources/testenv_tpl.yaml diff --git a/Ansible/README.md b/Ansible/README.md index 4527053..71d07d9 100644 --- a/Ansible/README.md +++ b/Ansible/README.md @@ -12,6 +12,7 @@ This Ansible directory consists of the following directories that support the JF | collection_version | artifactory_version | xray_version | |--------------------|---------------------|--------------| +| 1.0.8 | 7.6.1 | 3.5.2 | | 1.0.7 | 7.6.1 | 3.5.2 | | 1.0.6 | 7.5.0 | 3.3.0 | | 1.0.6 | 7.4.3 | 3.3.0 | @@ -84,11 +85,29 @@ ansible_ssh_common_args: '-o ProxyCommand="ssh -o StrictHostKeyChecking=no -A us eg. ansible_ssh_common_args: '-o ProxyCommand="ssh -o StrictHostKeyChecking=no -A ubuntu@{{ azureDeployment.deployment.outputs.lbIp.value }} -W %h:%p"' ``` +## Upgrades +The Artifactory and Xray roles support software updates. To use a role to perform a software update only, use the _artifactory_upgrade_only_ or _xray_upgrade_only_ variable and specify the version. See the following example. + +``` +- hosts: artifactory + vars: + artifactory_version: "{{ lookup('env', 'artifactory_version_upgrade') }}" + artifactory_upgrade_only: true + roles: + - artifactory + +- hosts: xray + vars: + xray_version: "{{ lookup('env', 'xray_version_upgrade') }}" + xray_upgrade_only: true + roles: + - xray +``` ## Building the Collection Archive 1. Go to the [ansible_collections/jfrog/installers directory](ansible_collections/jfrog/installers). 2. Update the galaxy.yml meta file as needed. Update the version. -3. Build the archive. +3. Build the archive. (Requires Ansible 2.9+) ``` ansible-galaxy collection build ``` diff --git a/Ansible/pipelines.yaml b/Ansible/pipelines.yaml index 9f7a18f..8c22a43 100644 --- a/Ansible/pipelines.yaml +++ b/Ansible/pipelines.yaml @@ -53,7 +53,7 @@ pipelines: - ls - eval $(ssh-agent -s) - ssh-add <(echo "$int_ansiblePrivateKey_key") - - ansible-playbook Ansible/test/aws/playbook.yaml + - ansible-playbook Ansible/test/aws/playbook-ha-install.yaml onComplete: - echo "AWS Ansible playbook complete." - name: execute_azure_ansible_playbook @@ -105,6 +105,6 @@ pipelines: - 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 + - ansible-playbook Ansible/test/azure/playbook-ha-install.yaml onComplete: - echo "Azure Ansible playbook complete." \ No newline at end of file diff --git a/Ansible/test/aws/playbook-ha-install.yaml b/Ansible/test/aws/playbook-ha-install.yaml index a859072..ba59220 100644 --- a/Ansible/test/aws/playbook-ha-install.yaml +++ b/Ansible/test/aws/playbook-ha-install.yaml @@ -37,9 +37,7 @@ db_url: "jdbc:postgresql://{{ AWSDeployment.stack_outputs.DBInstancePrivate }}:5432/artifactory" server_name: "{{ AWSDeployment.stack_outputs.ALBHostName }}" artifactory_is_primary: true - artifactory_license1: "{{ lookup('env', 'artifactory_license1') }}" - artifactory_license2: "{{ lookup('env', 'artifactory_license2') }}" - artifactory_license3: "{{ lookup('env', 'artifactory_license3') }}" + artifactory_license_file: "{{ lookup('env', 'artifactory_license_file') }}" groups: - artifactory @@ -84,6 +82,11 @@ - { db_name: "xraydb", db_owner: "xray" } groups: database + - name: Set up test environment file + copy: + src: ../tests/src/test/resources/testenv_tpl.yaml + dest: ../tests/src/test/resources/testenv.yaml + - name: Set up test environment url replace: path: ../tests/src/test/resources/testenv.yaml @@ -140,12 +143,7 @@ - name: Test hosts: localhost tasks: - - name: Run tests - shell: - cmd: ./gradlew clean unified_test - chdir: ../tests/ - - name: Cleanup and delete stack - cloudformation: - stack_name: "{{ lookup('env', 'stack_name') }}" - region: "us-east-1" - state: "absent" \ No newline at end of file + - name: Run tests + shell: + cmd: ./gradlew clean unified_test + chdir: ../tests/ \ No newline at end of file diff --git a/Ansible/test/aws/playbook-ha-upgrade.yaml b/Ansible/test/aws/playbook-ha-upgrade.yaml new file mode 100644 index 0000000..fa97c16 --- /dev/null +++ b/Ansible/test/aws/playbook-ha-upgrade.yaml @@ -0,0 +1,172 @@ +--- +- name: Provision AWS test infrastructure + hosts: localhost + tasks: + - shell: 'pwd' + register: cmd + + - debug: + msg: "{{ cmd.stdout }}" + - name: Create AWS test system + cloudformation: + stack_name: "{{ lookup('env', 'stack_name') }}" + state: "present" + region: "us-east-1" + disable_rollback: true + template: "{{ lookup('env', 'cfn_template') }}" + template_parameters: + SSHKeyName: "{{ lookup('env', 'ssh_public_key_name') }}" + tags: + Stack: "{{ lookup('env', 'stack_name') }}" + register: AWSDeployment + - name: Get AWS deployment details + debug: + var: AWSDeployment + + - name: Add bastion + add_host: + hostname: "{{ AWSDeployment.stack_outputs.BastionInstancePublic }}" + groups: bastion + ansible_user: "ubuntu" + - name: Add new RT primary to host group + add_host: + hostname: "{{ AWSDeployment.stack_outputs.RTPriInstancePrivate }}" + ansible_user: "ubuntu" + ansible_ssh_common_args: '-o ProxyCommand="ssh -o StrictHostKeyChecking=no -A ubuntu@{{ AWSDeployment.stack_outputs.BastionInstancePublic }} -W %h:%p"' + artifactory_version: "{{ lookup('env', 'artifactory_version') }}" + db_url: "jdbc:postgresql://{{ AWSDeployment.stack_outputs.DBInstancePrivate }}:5432/artifactory" + server_name: "{{ AWSDeployment.stack_outputs.ALBHostName }}" + artifactory_is_primary: true + artifactory_license_file: "{{ lookup('env', 'artifactory_license_file') }}" + groups: + - artifactory + + - name: Add RT secondaries to host group + add_host: + hostname: "{{ AWSDeployment.stack_outputs.RTSecInstancePrivate }}" + ansible_user: "ubuntu" + ansible_ssh_common_args: '-o ProxyCommand="ssh -o StrictHostKeyChecking=no -A ubuntu@{{ AWSDeployment.stack_outputs.BastionInstancePublic }} -W %h:%p"' + artifactory_version: "{{ lookup('env', 'artifactory_version') }}" + db_url: "jdbc:postgresql://{{ AWSDeployment.stack_outputs.DBInstancePrivate }}:5432/artifactory" + server_name: "{{ AWSDeployment.stack_outputs.ALBHostName }}" + artifactory_is_primary: false + groups: + - artifactory + + - name: Add xrays to host group + add_host: + hostname: "{{ AWSDeployment.stack_outputs.XrayInstancePrivate }}" + ansible_user: "ubuntu" + ansible_ssh_common_args: '-o ProxyCommand="ssh -o StrictHostKeyChecking=no -A ubuntu@{{ AWSDeployment.stack_outputs.BastionInstancePublic }} -W %h:%p"' + xray_version: "{{ lookup('env', 'xray_version') }}" + jfrog_url: "http://{{ AWSDeployment.stack_outputs.ALBHostName }}" + master_key: "{{ lookup('env', 'master_key') }}" + join_key: "{{ lookup('env', 'join_key') }}" + db_type: "postgresql" + db_driver: "org.postgresql.Driver" + db_user: "xray" + db_password: "xray" + db_url: "postgres://{{ AWSDeployment.stack_outputs.DBInstancePrivate }}:5432/xraydb?sslmode=disable" + groups: xray + + - name: Add DBs to host group + add_host: + hostname: "{{ AWSDeployment.stack_outputs.DBInstancePrivate }}" + ansible_user: "ubuntu" + ansible_ssh_common_args: '-o ProxyCommand="ssh -o StrictHostKeyChecking=no -A ubuntu@{{ AWSDeployment.stack_outputs.BastionInstancePublic }} -W %h:%p"' + db_users: + - { db_user: "artifactory", db_password: "Art1fAct0ry" } + - { db_user: "xray", db_password: "xray" } + dbs: + - { db_name: "artifactory", db_owner: "artifactory" } + - { db_name: "xraydb", db_owner: "xray" } + groups: database + + - name: Set up test environment file + copy: + src: ../tests/src/test/resources/testenv_tpl.yaml + dest: ../tests/src/test/resources/testenv.yaml + + - name: Set up test environment url + replace: + path: ../tests/src/test/resources/testenv.yaml + regexp: 'urlval' + replace: "http://{{ AWSDeployment.stack_outputs.ALBHostName }}" + + - name: Set up test environment external_ip + replace: + path: ../tests/src/test/resources/testenv.yaml + regexp: 'ipval' + replace: "{{ AWSDeployment.stack_outputs.ALBHostName }}" + + - name: Set up test environment rt_password + replace: + path: ../tests/src/test/resources/testenv.yaml + regexp: 'passval' + replace: "password" + + - name: show testenv.yaml + debug: var=item + with_file: + - ../tests/src/test/resources/testenv.yaml + + - name: Wait 300 seconds for port 22 + wait_for: + port: 22 + host: "{{ AWSDeployment.stack_outputs.BastionInstancePublic }}" + delay: 10 + + - debug: + msg: "Unified URL is at http://{{ AWSDeployment.stack_outputs.ALBHostName }}" + +# apply roles to install software +- hosts: database + roles: + - postgres + +- hosts: artifactory + vars: + artifactory_ha_enabled: true + master_key: "{{ lookup('env', 'master_key') }}" + join_key: "{{ lookup('env', 'join_key') }}" + db_download_url: "https://jdbc.postgresql.org/download/postgresql-42.2.12.jar" + db_type: "postgresql" + db_driver: "org.postgresql.Driver" + db_user: "artifactory" + db_password: "Art1fAct0ry" + roles: + - artifactory + +- hosts: xray + roles: + - xray + +- name: Test + hosts: localhost + tasks: + - name: Run tests + shell: + cmd: ./gradlew clean unified_test + chdir: ../tests/ + +# Now upgrade +- name: Upgrade + hosts: localhost + tasks: + - pause: + prompt: "Proceed to upgrade?" + minutes: 5 + +- hosts: artifactory + vars: + artifactory_version: "{{ lookup('env', 'artifactory_version_upgrade') }}" + artifactory_upgrade_only: true + roles: + - artifactory + +- hosts: xray + vars: + xray_version: "{{ lookup('env', 'xray_version_upgrade') }}" + xray_upgrade_only: true + roles: + - xray \ No newline at end of file diff --git a/Ansible/test/aws/runAwsInstall.sh b/Ansible/test/aws/runAwsInstall.sh index fa8da2a..6b1a735 100755 --- a/Ansible/test/aws/runAwsInstall.sh +++ b/Ansible/test/aws/runAwsInstall.sh @@ -1,3 +1,12 @@ #!/usr/bin/env bash -ansible-playbook Ansible/test/aws/playbook.yaml \ No newline at end of file +export stack_name=$1 +export cfn_template="~/git/JFrog-Cloud-Installers/Ansible/infra/aws/lb-rt-xray-ha-ubuntu16.json" +export ssh_public_key_name=jeff-ansible +export artifactory_license_file="~/Desktop/artifactory.cluster.license" +export master_key=d8c19a03036f83ea45f2c658e22fdd60 +export join_key=d8c19a03036f83ea45f2c658e22fdd61 +export ansible_user=ubuntu +export artifactory_version="7.4.3" +export xray_version="3.4.0" +ansible-playbook Ansible/test/aws/playbook-ha-install.yaml \ No newline at end of file diff --git a/Ansible/test/aws/runAwsUpgrade.sh b/Ansible/test/aws/runAwsUpgrade.sh new file mode 100755 index 0000000..191fe97 --- /dev/null +++ b/Ansible/test/aws/runAwsUpgrade.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +export stack_name=$1 +export cfn_template="~/git/JFrog-Cloud-Installers/Ansible/infra/aws/lb-rt-xray-ha-ubuntu16.json" +export ssh_public_key_name=jeff-ansible +export artifactory_license_file="~/Desktop/artifactory.cluster.license" +export master_key=d8c19a03036f83ea45f2c658e22fdd60 +export join_key=d8c19a03036f83ea45f2c658e22fdd61 +export ansible_user=ubuntu +export artifactory_version="7.4.3" +export xray_version="3.4.0" +export artifactory_version_upgrade="7.6.1" +export xray_version_upgrade="3.5.2" +ansible-playbook Ansible/test/aws/playbook-ha-upgrade.yaml \ No newline at end of file diff --git a/Ansible/test/tests/.gradle/5.2.1/fileChanges/last-build.bin b/Ansible/test/tests/.gradle/5.2.1/fileChanges/last-build.bin deleted file mode 100644 index f76dd238ade08917e6712764a16a22005a50573d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1 IcmZPo000310RR91 diff --git a/Ansible/test/tests/.gradle/5.2.1/fileHashes/fileHashes.lock b/Ansible/test/tests/.gradle/5.2.1/fileHashes/fileHashes.lock deleted file mode 100644 index ceb38cc88f35a1c014e507af3e74c5a2b2a4d9d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 ScmZQ}3FHq8H4&T700jUW9s)c7 diff --git a/Ansible/test/tests/.gradle/5.2.1/gc.properties b/Ansible/test/tests/.gradle/5.2.1/gc.properties deleted file mode 100644 index e69de29..0000000 diff --git a/Ansible/test/tests/.gradle/6.5/executionHistory/executionHistory.bin b/Ansible/test/tests/.gradle/6.5/executionHistory/executionHistory.bin index 1da42b951b5fd0483d7c7691fd96842c9e3011af..e2cad615aa20e05d9d93ed30e5eaeff02eecb843 100644 GIT binary patch delta 2612 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 vKS<{r7l+iD?MF0Q* literal 17 UcmZRM7fj##ct)i-0|eLu04-tz;s5{u diff --git a/Ansible/test/tests/.gradle/6.5/fileHashes/fileHashes.bin b/Ansible/test/tests/.gradle/6.5/fileHashes/fileHashes.bin index 3aa0a9b101df2e66112d98e4f62fcd7680a4fd39..4782416b9284b5378b3efee4203b97ffa38586a0 100644 GIT binary patch delta 2068 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 diff --git a/Ansible/test/tests/.gradle/6.5/fileHashes/fileHashes.lock b/Ansible/test/tests/.gradle/6.5/fileHashes/fileHashes.lock index e9ea2c51355652fd0632b55daeffbc9d70e78624..88d74f8a5f662cf7d32cabf6de40aef0c028fca1 100644 GIT binary patch literal 17 VcmZSH8q%`ie|zM81~6cK2LL{@1@Zs@ literal 17 VcmZSH8q%`ie|zM81~6cX0RTQ41zi9D diff --git a/Ansible/test/tests/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/Ansible/test/tests/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 866a35e263bf740ab576771f7f7d0e929d5abe51..cad006e55b2e84f4a8120ac1e8e4e23de64b82a5 100644 GIT binary patch literal 17 UcmZQ}3cSGg=7je*1_;;=05vQHApigX literal 17 UcmZQ}3cSGg=7je*1_%fN05r)2z5oCK diff --git a/Ansible/test/tests/src/test/resources/testenv.yaml b/Ansible/test/tests/src/test/resources/testenv.yaml index 55ff648..3480812 100644 --- a/Ansible/test/tests/src/test/resources/testenv.yaml +++ b/Ansible/test/tests/src/test/resources/testenv.yaml @@ -1,6 +1,6 @@ artifactory: - url: urlval - external_ip: ipval + url: http://Ansib-Appli-1NLZU3V2AGK49-291976964.us-east-1.elb.amazonaws.com + external_ip: Ansib-Appli-1NLZU3V2AGK49-291976964.us-east-1.elb.amazonaws.com distribution: artifactory_ha rt_username: admin - rt_password: passval \ No newline at end of file + rt_password: password \ No newline at end of file diff --git a/Ansible/test/tests/src/test/resources/testenv_tpl.yaml b/Ansible/test/tests/src/test/resources/testenv_tpl.yaml new file mode 100644 index 0000000..55ff648 --- /dev/null +++ b/Ansible/test/tests/src/test/resources/testenv_tpl.yaml @@ -0,0 +1,6 @@ +artifactory: + url: urlval + external_ip: ipval + distribution: artifactory_ha + rt_username: admin + rt_password: passval \ No newline at end of file From 203e7dae3a2985300c5dbf54d63f1a1537a1a376 Mon Sep 17 00:00:00 2001 From: jefferyfry Date: Tue, 25 Aug 2020 14:13:07 -0700 Subject: [PATCH 02/14] Fixed azure playbook name. --- Ansible/test/azure/{playbook.yaml => playbook-ha-install.yaml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Ansible/test/azure/{playbook.yaml => playbook-ha-install.yaml} (100%) diff --git a/Ansible/test/azure/playbook.yaml b/Ansible/test/azure/playbook-ha-install.yaml similarity index 100% rename from Ansible/test/azure/playbook.yaml rename to Ansible/test/azure/playbook-ha-install.yaml From 4fbfb8505b85adb7aab1b254c3f8daf47bdc4e3c Mon Sep 17 00:00:00 2001 From: jefferyfry Date: Tue, 25 Aug 2020 15:14:20 -0700 Subject: [PATCH 03/14] Fixed licenses in Ansible playbook. --- Ansible/test/aws/playbook-ha-install.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Ansible/test/aws/playbook-ha-install.yaml b/Ansible/test/aws/playbook-ha-install.yaml index ba59220..0587e30 100644 --- a/Ansible/test/aws/playbook-ha-install.yaml +++ b/Ansible/test/aws/playbook-ha-install.yaml @@ -37,7 +37,9 @@ db_url: "jdbc:postgresql://{{ AWSDeployment.stack_outputs.DBInstancePrivate }}:5432/artifactory" server_name: "{{ AWSDeployment.stack_outputs.ALBHostName }}" artifactory_is_primary: true - artifactory_license_file: "{{ lookup('env', 'artifactory_license_file') }}" + artifactory_license1: "{{ lookup('env', 'artifactory_license1') }}" + artifactory_license2: "{{ lookup('env', 'artifactory_license2') }}" + artifactory_license3: "{{ lookup('env', 'artifactory_license3') }}" groups: - artifactory From e0c74e4f95a06a6955b9ceee974a7c0f19ec173f Mon Sep 17 00:00:00 2001 From: jefferyfry Date: Tue, 25 Aug 2020 15:47:47 -0700 Subject: [PATCH 04/14] Changed RT services to start. --- .../jfrog/installers/roles/artifactory/tasks/install.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml index a97d554..b704b05 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml @@ -149,7 +149,7 @@ - name: start and enable the primary node service: name: artifactory - state: restarted + state: started become: yes when: artifactory_is_primary == true @@ -161,6 +161,6 @@ - name: start and enable the secondary nodes service: name: artifactory - state: restarted + state: started become: yes when: artifactory_is_primary == false From 2da3a81e7625271c4f5fce3670cd2299fc2d8c12 Mon Sep 17 00:00:00 2001 From: jefferyfry Date: Tue, 25 Aug 2020 16:32:04 -0700 Subject: [PATCH 05/14] added step to ensure ownership of data dir. --- .../jfrog/installers/roles/artifactory/tasks/install.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml index b704b05..c1114f7 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml @@ -146,6 +146,13 @@ shell: "{{ artifactory_home }}/app/bin/installService.sh" become: yes +- name: ensure ownership of var/data + file: + path: "{{ artifactory_home }}/var/data" + owner: "artifactory" + group: "artifactory" + become: yes + - name: start and enable the primary node service: name: artifactory From d702466785057c221cd87d20f467d0ecde940a7b Mon Sep 17 00:00:00 2001 From: jefferyfry Date: Tue, 25 Aug 2020 17:58:40 -0700 Subject: [PATCH 06/14] Added xray version check for erlang install. --- .../jfrog/installers/roles/xray/tasks/Debian.yml | 11 +++++++++-- .../jfrog/installers/roles/xray/tasks/RedHat.yml | 10 +++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/Debian.yml b/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/Debian.yml index 8aa2a79..6002940 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/Debian.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/Debian.yml @@ -27,10 +27,17 @@ name: libwxbase3.0-0v5 update_cache: yes state: present - ignore_errors: yes + when become: yes -- name: Install erlang +- name: Install erlang 21.2.1-1 apt: deb: "{{ xray_home }}/app/third-party/rabbitmq/esl-erlang_21.2.1-1~ubuntu~xenial_amd64.deb" + when: {{ xray_version is version('3.8.0','<') }} + become: yes + +- name: Install erlang 22.3.4.1-1 + apt: + deb: "{{ xray_home }}/app/third-party/rabbitmq/esl-erlang_22.3.4.1-1_ubuntu_xenial_amd64.deb" + when: {{ xray_version is version('3.8.0','>=') }} become: yes \ No newline at end of file diff --git a/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/RedHat.yml b/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/RedHat.yml index 35792f9..a9fbfe6 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/RedHat.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/RedHat.yml @@ -11,8 +11,16 @@ state: present become: yes -- name: Install erlang +- name: Install erlang 21.1.4-1 yum: name: "{{ xray_home }}/app/third-party/rabbitmq/erlang-21.1.4-1.el7.centos.x86_64.rpm" state: present + when: {{ xray_version is version('3.8.0','<') }} + become: yes + +- name: Install erlang 22.3.4.1-1 + yum: + name: "{{ xray_home }}/app/third-party/rabbitmq/erlang-22.3.4.1-1.el7.centos.x86_64.rpm" + state: present + when: {{ xray_version is version('3.8.0','>=') }} become: yes \ No newline at end of file From e47c8fc3cec2955748f8f8295e0c1cf47fe56b93 Mon Sep 17 00:00:00 2001 From: jefferyfry Date: Tue, 25 Aug 2020 18:20:12 -0700 Subject: [PATCH 07/14] Updated syntax. --- .../jfrog/installers/roles/xray/tasks/Debian.yml | 4 ++-- .../jfrog/installers/roles/xray/tasks/RedHat.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/Debian.yml b/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/Debian.yml index 6002940..ea405b4 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/Debian.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/Debian.yml @@ -33,11 +33,11 @@ - name: Install erlang 21.2.1-1 apt: deb: "{{ xray_home }}/app/third-party/rabbitmq/esl-erlang_21.2.1-1~ubuntu~xenial_amd64.deb" - when: {{ xray_version is version('3.8.0','<') }} + when: xray_version is version("3.8.0","<") become: yes - name: Install erlang 22.3.4.1-1 apt: deb: "{{ xray_home }}/app/third-party/rabbitmq/esl-erlang_22.3.4.1-1_ubuntu_xenial_amd64.deb" - when: {{ xray_version is version('3.8.0','>=') }} + when: xray_version is version("3.8.0",">=") become: yes \ No newline at end of file diff --git a/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/RedHat.yml b/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/RedHat.yml index a9fbfe6..a24f774 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/RedHat.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/RedHat.yml @@ -15,12 +15,12 @@ yum: name: "{{ xray_home }}/app/third-party/rabbitmq/erlang-21.1.4-1.el7.centos.x86_64.rpm" state: present - when: {{ xray_version is version('3.8.0','<') }} + when: xray_version is version("3.8.0","<") become: yes - name: Install erlang 22.3.4.1-1 yum: name: "{{ xray_home }}/app/third-party/rabbitmq/erlang-22.3.4.1-1.el7.centos.x86_64.rpm" state: present - when: {{ xray_version is version('3.8.0','>=') }} + when: xray_version is version("3.8.0",">=") become: yes \ No newline at end of file From c32b4c521c3c541265ed3305f3908225d252c850 Mon Sep 17 00:00:00 2001 From: jefferyfry Date: Tue, 25 Aug 2020 19:28:28 -0700 Subject: [PATCH 08/14] Fixed typo --- .../jfrog/installers/roles/xray/tasks/Debian.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/Debian.yml b/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/Debian.yml index ea405b4..ec28e0a 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/Debian.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/Debian.yml @@ -27,7 +27,6 @@ name: libwxbase3.0-0v5 update_cache: yes state: present - when become: yes - name: Install erlang 21.2.1-1 From cd8e0debdebd8a003bc51ea04ab10eddf0a34335 Mon Sep 17 00:00:00 2001 From: jefferyfry Date: Tue, 25 Aug 2020 20:23:01 -0700 Subject: [PATCH 09/14] Simplified pipeline. --- Ansible/pipelines.yaml | 56 ++---------------------------------------- 1 file changed, 2 insertions(+), 54 deletions(-) diff --git a/Ansible/pipelines.yaml b/Ansible/pipelines.yaml index 8c22a43..83fb517 100644 --- a/Ansible/pipelines.yaml +++ b/Ansible/pipelines.yaml @@ -5,7 +5,7 @@ resources: gitProvider: jefferyfryGithub path: jefferyfry/JFrog-Cloud-Installers pipelines: - - name: ansible_aws_azure_automation_pipeline + - name: ansible_automation_pipeline steps: - name: execute_aws_ansible_playbook type: Bash @@ -55,56 +55,4 @@ pipelines: - ssh-add <(echo "$int_ansiblePrivateKey_key") - ansible-playbook Ansible/test/aws/playbook-ha-install.yaml onComplete: - - echo "AWS Ansible playbook complete." - - 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_version="$int_ansibleEnvVars_artifactory_version" - - export xray_version="$int_ansibleEnvVars_xray_version" - - 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 - - pwd - - ls - - 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-ha-install.yaml - onComplete: - - echo "Azure Ansible playbook complete." \ No newline at end of file + - echo "AWS Ansible playbook complete." \ No newline at end of file From f33f5ecf142f515fde03ad750f4af2850de59149 Mon Sep 17 00:00:00 2001 From: Jeff Fry Date: Sun, 27 Sep 2020 11:18:13 -0700 Subject: [PATCH 10/14] Added creation of var/data. --- .../installers/roles/artifactory/tasks/install.yml | 8 +++++--- .../roles/artifactory_nginx/tasks/main.yml | 12 ++++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml index 12e5ca3..a0e98ff 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml @@ -64,11 +64,13 @@ group: "{{ artifactory_group }}" become: yes -- name: ensure ownership of data +- name: ensure data exists file: path: "{{ artifactory_home }}/var/data" - owner: "artifactory" - group: "artifactory" + state: directory + owner: "{{ artifactory_user }}" + group: "{{ artifactory_group }}" + become: yes - name: ensure etc exists file: diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory_nginx/tasks/main.yml b/Ansible/ansible_collections/jfrog/installers/roles/artifactory_nginx/tasks/main.yml index 2d92de3..fba3324 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/artifactory_nginx/tasks/main.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory_nginx/tasks/main.yml @@ -1,7 +1,9 @@ --- -- name: Nginx Install Block +- name: install nginx block: - - name: install nginx + - debug: + msg: "Attempting nginx installation without dependencies for potential offline mode." + - name: install nginx without dependencies package: name: nginx state: present @@ -11,9 +13,11 @@ become: yes until: package_res is success rescue: - - name: perform dependency installation + - debug: + msg: "Attempting nginx installation with dependencies for potential online mode." + - name: install dependencies include_tasks: "{{ ansible_os_family }}.yml" - - name: install nginx + - name: install nginx after dependency installation package: name: nginx state: present From 31bbbed809bc1bc5d894e88eee4de89ea59f54e6 Mon Sep 17 00:00:00 2001 From: Jeff Fry Date: Sun, 27 Sep 2020 11:49:08 -0700 Subject: [PATCH 11/14] Fixed xray home variable. --- .../jfrog/installers/roles/xray/tasks/install.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/install.yml b/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/install.yml index ca00381..64155c8 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/install.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/xray/tasks/install.yml @@ -54,17 +54,17 @@ - name: use specified system yaml copy: - src: "{{ artifactory_system_yaml }}" - dest: "{{ artifactory_home }}/var/etc/system.yaml" + src: "{{ xray_system_yaml }}" + dest: "{{ xray_home }}/var/etc/system.yaml" become: yes - when: artifactory_system_yaml is defined + when: xray_system_yaml is defined - name: configure system yaml template template: - src: "{{ artifactory_system_yaml_template }}" - dest: "{{ artifactory_home }}/var/etc/system.yaml" + src: "{{ xray_system_yaml_template }}" + dest: "{{ xray_home }}/var/etc/system.yaml" become: yes - when: artifactory_system_yaml is not defined + when: xray_system_yaml is not defined - name: ensure {{ xray_home }}/var/etc/security/ exists file: From 2bfacc990e4a45803f0caa56007c3112a82a6295 Mon Sep 17 00:00:00 2001 From: Jeff Fry Date: Sun, 27 Sep 2020 12:09:08 -0700 Subject: [PATCH 12/14] Added python psycopg error handling. --- .../jfrog/installers/roles/postgres/tasks/Debian.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Ansible/ansible_collections/jfrog/installers/roles/postgres/tasks/Debian.yml b/Ansible/ansible_collections/jfrog/installers/roles/postgres/tasks/Debian.yml index 611332e..04c9e91 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/postgres/tasks/Debian.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/postgres/tasks/Debian.yml @@ -4,12 +4,14 @@ name: python-psycopg2 update_cache: yes become: yes + ignore_errors: yes - name: install python3 psycopg2 apt: name: python3-psycopg2 update_cache: yes become: yes + ignore_errors: yes - name: add postgres apt key apt_key: From 4b9437d7d941cdf5d068b962736996a0325b1604 Mon Sep 17 00:00:00 2001 From: Jeff Fry Date: Sun, 27 Sep 2020 14:24:35 -0700 Subject: [PATCH 13/14] Created package 1.1.0. --- Ansible/CHANGELOG.md | 13 +++++++++++++ .../installers/jfrog-installers-1.1.0.tar.gz | Bin 0 -> 31110 bytes 2 files changed, 13 insertions(+) create mode 100644 Ansible/CHANGELOG.md create mode 100644 Ansible/ansible_collections/jfrog/installers/jfrog-installers-1.1.0.tar.gz diff --git a/Ansible/CHANGELOG.md b/Ansible/CHANGELOG.md new file mode 100644 index 0000000..ce008f9 --- /dev/null +++ b/Ansible/CHANGELOG.md @@ -0,0 +1,13 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +## [Unreleased] + +## [1.1.0] - 2020-09-27 + +- Validated for Artifactory 7.7.8 and Xray 3.8.6. +- Added offline support for Artifactory and Xray. +- Added support for configurable Postgres pg_hba.conf. +- Misc fixes due to Artifactory 7.7.8. +- Published 1.1.0 to [Ansible Galaxy](https://galaxy.ansible.com/jfrog/installers). \ No newline at end of file diff --git a/Ansible/ansible_collections/jfrog/installers/jfrog-installers-1.1.0.tar.gz b/Ansible/ansible_collections/jfrog/installers/jfrog-installers-1.1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..5e8aebb43e15bc5664720581957dbad6f873318c GIT binary patch literal 31110 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 GH}>;{%goKDv+VkE)z?d6$lCnl1}_CL<+Ch0 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 literal 0 HcmV?d00001 From 2ac27effa23445291425413e69162d337d66a9ee Mon Sep 17 00:00:00 2001 From: Jeff Fry Date: Sun, 27 Sep 2020 17:04:43 -0700 Subject: [PATCH 14/14] Fixed changelog. --- Ansible/CHANGELOG.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/Ansible/CHANGELOG.md b/Ansible/CHANGELOG.md index ce008f9..25ace90 100644 --- a/Ansible/CHANGELOG.md +++ b/Ansible/CHANGELOG.md @@ -2,8 +2,6 @@ All notable changes to this project will be documented in this file. -## [Unreleased] - ## [1.1.0] - 2020-09-27 - Validated for Artifactory 7.7.8 and Xray 3.8.6.