mirror of
https://github.com/ZwareBear/JFrog-Cloud-Installers.git
synced 2026-01-21 05:06:56 -06:00
Merge pull request #43 from jefferyfry/master
Ansible collection 1.1.0 RT 7.7.8 and Xray 3.8.6
This commit is contained in:
11
Ansible/CHANGELOG.md
Normal file
11
Ansible/CHANGELOG.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## [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).
|
||||||
@@ -12,6 +12,11 @@ This Ansible directory consists of the following directories that support the JF
|
|||||||
|
|
||||||
| collection_version | artifactory_version | xray_version |
|
| collection_version | artifactory_version | xray_version |
|
||||||
|--------------------|---------------------|--------------|
|
|--------------------|---------------------|--------------|
|
||||||
|
| 1.1.0 | 7.7.8 | 3.8.6 |
|
||||||
|
| 1.0.9 | 7.7.3 | 3.8.0 |
|
||||||
|
| 1.0.8 | 7.7.3 | 3.8.0 |
|
||||||
|
| 1.0.8 | 7.7.1 | 3.5.2 |
|
||||||
|
| 1.0.8 | 7.6.1 | 3.5.2 |
|
||||||
| 1.0.7 | 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.5.0 | 3.3.0 |
|
||||||
| 1.0.6 | 7.4.3 | 3.3.0 |
|
| 1.0.6 | 7.4.3 | 3.3.0 |
|
||||||
@@ -84,11 +89,29 @@ ansible_ssh_common_args: '-o ProxyCommand="ssh -o StrictHostKeyChecking=no -A us
|
|||||||
eg.
|
eg.
|
||||||
ansible_ssh_common_args: '-o ProxyCommand="ssh -o StrictHostKeyChecking=no -A ubuntu@{{ azureDeployment.deployment.outputs.lbIp.value }} -W %h:%p"'
|
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
|
## Building the Collection Archive
|
||||||
1. Go to the [ansible_collections/jfrog/installers directory](ansible_collections/jfrog/installers).
|
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.
|
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
|
ansible-galaxy collection build
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ namespace: "jfrog"
|
|||||||
name: "installers"
|
name: "installers"
|
||||||
|
|
||||||
# The version of the collection. Must be compatible with semantic versioning
|
# The version of the collection. Must be compatible with semantic versioning
|
||||||
version: "1.0.9"
|
version: "1.1.0"
|
||||||
|
|
||||||
# The path to the Markdown (.md) readme file. This path is relative to the root of the collection
|
# The path to the Markdown (.md) readme file. This path is relative to the root of the collection
|
||||||
readme: "README.md"
|
readme: "README.md"
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -12,7 +12,7 @@ The artifactory role installs the Artifactory Pro software onto the host. Per th
|
|||||||
* _db_user_: The database user to configure. eg. "artifactory"
|
* _db_user_: The database user to configure. eg. "artifactory"
|
||||||
* _db_password_: The database password to configure. "Art1fact0ry"
|
* _db_password_: The database password to configure. "Art1fact0ry"
|
||||||
* _server_name_: This is the server name. eg. "artifactory.54.175.51.178.xip.io"
|
* _server_name_: This is the server name. eg. "artifactory.54.175.51.178.xip.io"
|
||||||
* _system_file_: Your own [system YAML](https://www.jfrog.com/confluence/display/JFROG/System+YAML+Configuration+File) file can be specified and used. **If specified, this file will be used rather than constructing a file from the parameters above.**
|
* _artifactory_system_yaml_: Your own [system YAML](https://www.jfrog.com/confluence/display/JFROG/System+YAML+Configuration+File) file can be specified and used. **If specified, this file will be used rather than constructing a file from the parameters above.**
|
||||||
* _binary_store_file_: Your own [binary store file](https://www.jfrog.com/confluence/display/JFROG/Configuring+the+Filestore) can be used. If specified, the default cluster-file-system will not be used.
|
* _binary_store_file_: Your own [binary store file](https://www.jfrog.com/confluence/display/JFROG/Configuring+the+Filestore) can be used. If specified, the default cluster-file-system will not be used.
|
||||||
* _artifactory_upgrade_only_: Perform an software upgrade only. Default is false.
|
* _artifactory_upgrade_only_: Perform an software upgrade only. Default is false.
|
||||||
|
|
||||||
@@ -24,6 +24,8 @@ The artifactory role installs the Artifactory Pro software onto the host. Per th
|
|||||||
### secondary vars (vars used by the secondary Artifactory server)
|
### secondary vars (vars used by the secondary Artifactory server)
|
||||||
* _artifactory_is_primary_: For the secondary node(s) this must be set to **false**.
|
* _artifactory_is_primary_: For the secondary node(s) this must be set to **false**.
|
||||||
|
|
||||||
|
Additional variables can be found in [defaults/main.yml](./defaults/main.yml).
|
||||||
|
|
||||||
## Example Playbook
|
## Example Playbook
|
||||||
```
|
```
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
ansible_marketplace: standalone
|
ansible_marketplace: standalone
|
||||||
|
|
||||||
# The version of Artifactory to install
|
# The version of Artifactory to install
|
||||||
artifactory_version: 7.7.3
|
artifactory_version: 7.7.8
|
||||||
|
|
||||||
# licenses file - specify a licenses file or specify up to 5 licenses
|
# licenses file - specify a licenses file or specify up to 5 licenses
|
||||||
artifactory_license1:
|
artifactory_license1:
|
||||||
@@ -29,7 +29,7 @@ artifactory_file_store_dir: /data
|
|||||||
artifactory_flavour: pro
|
artifactory_flavour: pro
|
||||||
|
|
||||||
extra_java_opts: -server -Xms2g -Xmx14g -Xss256k -XX:+UseG1GC
|
extra_java_opts: -server -Xms2g -Xmx14g -Xss256k -XX:+UseG1GC
|
||||||
artifactory_system_yaml: system.yaml.j2
|
artifactory_system_yaml_template: system.yaml.j2
|
||||||
artifactory_tar: https://dl.bintray.com/jfrog/artifactory-pro/org/artifactory/pro/jfrog-artifactory-pro/{{ artifactory_version }}/jfrog-artifactory-pro-{{ artifactory_version }}-linux.tar.gz
|
artifactory_tar: https://dl.bintray.com/jfrog/artifactory-pro/org/artifactory/pro/jfrog-artifactory-pro/{{ artifactory_version }}/jfrog-artifactory-pro-{{ artifactory_version }}-linux.tar.gz
|
||||||
artifactory_home: "{{ jfrog_home_directory }}/artifactory"
|
artifactory_home: "{{ jfrog_home_directory }}/artifactory"
|
||||||
artifactory_untar_home: "{{ jfrog_home_directory }}/artifactory-{{ artifactory_flavour }}-{{ artifactory_version }}"
|
artifactory_untar_home: "{{ jfrog_home_directory }}/artifactory-{{ artifactory_flavour }}-{{ artifactory_version }}"
|
||||||
|
|||||||
@@ -64,6 +64,14 @@
|
|||||||
group: "{{ artifactory_group }}"
|
group: "{{ artifactory_group }}"
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
|
- name: ensure data exists
|
||||||
|
file:
|
||||||
|
path: "{{ artifactory_home }}/var/data"
|
||||||
|
state: directory
|
||||||
|
owner: "{{ artifactory_user }}"
|
||||||
|
group: "{{ artifactory_group }}"
|
||||||
|
become: yes
|
||||||
|
|
||||||
- name: ensure etc exists
|
- name: ensure etc exists
|
||||||
file:
|
file:
|
||||||
path: "{{ artifactory_home }}/var/etc"
|
path: "{{ artifactory_home }}/var/etc"
|
||||||
@@ -74,17 +82,17 @@
|
|||||||
|
|
||||||
- name: use specified system yaml
|
- name: use specified system yaml
|
||||||
copy:
|
copy:
|
||||||
src: "{{ system_file }}"
|
|
||||||
dest: "{{ artifactory_home }}/var/etc/system.yaml"
|
|
||||||
become: yes
|
|
||||||
when: system_file is defined
|
|
||||||
|
|
||||||
- name: configure system yaml
|
|
||||||
template:
|
|
||||||
src: "{{ artifactory_system_yaml }}"
|
src: "{{ artifactory_system_yaml }}"
|
||||||
dest: "{{ artifactory_home }}/var/etc/system.yaml"
|
dest: "{{ artifactory_home }}/var/etc/system.yaml"
|
||||||
become: yes
|
become: yes
|
||||||
when: system_file is not defined
|
when: artifactory_system_yaml is defined
|
||||||
|
|
||||||
|
- name: configure system yaml template
|
||||||
|
template:
|
||||||
|
src: "{{ artifactory_system_yaml_template }}"
|
||||||
|
dest: "{{ artifactory_home }}/var/etc/system.yaml"
|
||||||
|
become: yes
|
||||||
|
when: artifactory_system_yaml is not defined
|
||||||
|
|
||||||
- name: ensure {{ artifactory_home }}/var/etc/security/ exists
|
- name: ensure {{ artifactory_home }}/var/etc/security/ exists
|
||||||
file:
|
file:
|
||||||
@@ -181,7 +189,7 @@
|
|||||||
- name: start and enable the primary node
|
- name: start and enable the primary node
|
||||||
service:
|
service:
|
||||||
name: artifactory
|
name: artifactory
|
||||||
state: restarted
|
state: started
|
||||||
become: yes
|
become: yes
|
||||||
when: artifactory_is_primary == true
|
when: artifactory_is_primary == true
|
||||||
|
|
||||||
@@ -193,6 +201,6 @@
|
|||||||
- name: start and enable the secondary nodes
|
- name: start and enable the secondary nodes
|
||||||
service:
|
service:
|
||||||
name: artifactory
|
name: artifactory
|
||||||
state: restarted
|
state: started
|
||||||
become: yes
|
become: yes
|
||||||
when: artifactory_is_primary == false
|
when: artifactory_is_primary == false
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
---
|
---
|
||||||
- name: Nginx Install Block
|
- name: install nginx
|
||||||
block:
|
block:
|
||||||
- name: install nginx
|
- debug:
|
||||||
|
msg: "Attempting nginx installation without dependencies for potential offline mode."
|
||||||
|
- name: install nginx without dependencies
|
||||||
package:
|
package:
|
||||||
name: nginx
|
name: nginx
|
||||||
state: present
|
state: present
|
||||||
@@ -11,9 +13,11 @@
|
|||||||
become: yes
|
become: yes
|
||||||
until: package_res is success
|
until: package_res is success
|
||||||
rescue:
|
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"
|
include_tasks: "{{ ansible_os_family }}.yml"
|
||||||
- name: install nginx
|
- name: install nginx after dependency installation
|
||||||
package:
|
package:
|
||||||
name: nginx
|
name: nginx
|
||||||
state: present
|
state: present
|
||||||
|
|||||||
@@ -5,6 +5,17 @@ The postgres role will install Postgresql software and configure a database and
|
|||||||
* _db_users_: This is a list of database users to create. eg. db_users: - { db_user: "artifactory", db_password: "Art1fAct0ry" }
|
* _db_users_: This is a list of database users to create. eg. db_users: - { db_user: "artifactory", db_password: "Art1fAct0ry" }
|
||||||
* _dbs_: This is the database to create. eg. dbs: - { db_name: "artifactory", db_owner: "artifactory" }
|
* _dbs_: This is the database to create. eg. dbs: - { db_name: "artifactory", db_owner: "artifactory" }
|
||||||
|
|
||||||
|
By default, the [_pg_hba.conf_](https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html) client authentication file is configured for open access for development purposes through the _postgres_allowed_hosts_ variable:
|
||||||
|
|
||||||
|
```
|
||||||
|
postgres_allowed_hosts:
|
||||||
|
- { type: "host", database: "all", user: "all", address: "0.0.0.0/0", method: "trust"}
|
||||||
|
```
|
||||||
|
|
||||||
|
**THIS SHOULD NOT BE USED FOR PRODUCTION.**
|
||||||
|
|
||||||
|
**Update this variable to only allow access from Artifactory and Xray.**
|
||||||
|
|
||||||
## Example Playbook
|
## Example Playbook
|
||||||
```
|
```
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -82,3 +82,8 @@ postgres_server_auto_explain_log_min_duration: -1
|
|||||||
|
|
||||||
# Whether or not to use EXPLAIN ANALYZE.
|
# Whether or not to use EXPLAIN ANALYZE.
|
||||||
postgres_server_auto_explain_log_analyze: true
|
postgres_server_auto_explain_log_analyze: true
|
||||||
|
|
||||||
|
# Sets the hosts that can access the database
|
||||||
|
postgres_allowed_hosts:
|
||||||
|
- { type: "host", database: "all", user: "all", address: "0.0.0.0/0", method: "trust"}
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,14 @@
|
|||||||
name: python-psycopg2
|
name: python-psycopg2
|
||||||
update_cache: yes
|
update_cache: yes
|
||||||
become: yes
|
become: yes
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
- name: install python3 psycopg2
|
- name: install python3 psycopg2
|
||||||
apt:
|
apt:
|
||||||
name: python3-psycopg2
|
name: python3-psycopg2
|
||||||
update_cache: yes
|
update_cache: yes
|
||||||
become: yes
|
become: yes
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
- name: add postgres apt key
|
- name: add postgres apt key
|
||||||
apt_key:
|
apt_key:
|
||||||
|
|||||||
@@ -4,4 +4,8 @@ local all all peer
|
|||||||
host all all 127.0.0.1/32 md5
|
host all all 127.0.0.1/32 md5
|
||||||
host all all ::1/128 md5
|
host all all ::1/128 md5
|
||||||
## remote connections IPv4
|
## remote connections IPv4
|
||||||
host all all 0.0.0.0/0 trust
|
{% if postgres_allowed_hosts and postgres_allowed_hosts is iterable %}
|
||||||
|
{% for host in postgres_allowed_hosts %}
|
||||||
|
{{ host.type | default('host') }} {{ host.database | default('all') }} {{ host.user | default('all') }} {{ host.address | default('0.0.0.0/0') }} {{ item.auth | default('trust') }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
@@ -11,9 +11,10 @@ The xray role will install Xray software onto the host. An Artifactory server an
|
|||||||
* _db_url_: This is the database url. eg. "postgres://10.0.0.59:5432/xraydb?sslmode=disable"
|
* _db_url_: This is the database url. eg. "postgres://10.0.0.59:5432/xraydb?sslmode=disable"
|
||||||
* _db_user_: The database user to configure. eg. "xray"
|
* _db_user_: The database user to configure. eg. "xray"
|
||||||
* _db_password_: The database password to configure. "xray"
|
* _db_password_: The database password to configure. "xray"
|
||||||
* _system_file_: Your own [system YAML](https://www.jfrog.com/confluence/display/JFROG/System+YAML+Configuration+File) file can be specified and used. If specified, this file will be used rather than constructing a file from the parameters above.
|
* _xray_system_yaml_: Your own [system YAML](https://www.jfrog.com/confluence/display/JFROG/System+YAML+Configuration+File) file can be specified and used. If specified, this file will be used rather than constructing a file from the parameters above.
|
||||||
* _xray_upgrade_only_: Perform an software upgrade only. Default is false.
|
* _xray_upgrade_only_: Perform an software upgrade only. Default is false.
|
||||||
|
|
||||||
|
Additional variables can be found in [defaults/main.yml](./defaults/main.yml).
|
||||||
## Example Playbook
|
## Example Playbook
|
||||||
```
|
```
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
ansible_marketplace: standalone
|
ansible_marketplace: standalone
|
||||||
|
|
||||||
# The version of xray to install
|
# The version of xray to install
|
||||||
xray_version: 3.5.2
|
xray_version: 3.8.6
|
||||||
|
|
||||||
# whether to enable HA
|
# whether to enable HA
|
||||||
xray_ha_enabled: true
|
xray_ha_enabled: true
|
||||||
@@ -24,4 +24,6 @@ xray_user: xray
|
|||||||
xray_group: xray
|
xray_group: xray
|
||||||
|
|
||||||
# if this is an upgrade
|
# if this is an upgrade
|
||||||
xray_upgrade_only: false
|
xray_upgrade_only: false
|
||||||
|
|
||||||
|
xray_system_yaml_template: system.yaml.j2
|
||||||
@@ -27,10 +27,16 @@
|
|||||||
name: libwxbase3.0-0v5
|
name: libwxbase3.0-0v5
|
||||||
update_cache: yes
|
update_cache: yes
|
||||||
state: present
|
state: present
|
||||||
ignore_errors: yes
|
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
- name: Install erlang
|
- name: Install erlang 21.2.1-1
|
||||||
apt:
|
apt:
|
||||||
deb: "{{ xray_home }}/app/third-party/rabbitmq/esl-erlang_21.2.1-1~ubuntu~xenial_amd64.deb"
|
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
|
become: yes
|
||||||
@@ -11,8 +11,16 @@
|
|||||||
state: present
|
state: present
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
- name: Install erlang
|
- name: Install erlang 21.1.4-1
|
||||||
yum:
|
yum:
|
||||||
name: "{{ xray_home }}/app/third-party/rabbitmq/erlang-21.1.4-1.el7.centos.x86_64.rpm"
|
name: "{{ xray_home }}/app/third-party/rabbitmq/erlang-21.1.4-1.el7.centos.x86_64.rpm"
|
||||||
state: present
|
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
|
become: yes
|
||||||
@@ -52,11 +52,19 @@
|
|||||||
group: "{{ xray_group }}"
|
group: "{{ xray_group }}"
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
- name: configure system yaml
|
- name: use specified system yaml
|
||||||
template:
|
copy:
|
||||||
src: system.yaml.j2
|
src: "{{ xray_system_yaml }}"
|
||||||
dest: "{{ xray_home }}/var/etc/system.yaml"
|
dest: "{{ xray_home }}/var/etc/system.yaml"
|
||||||
become: yes
|
become: yes
|
||||||
|
when: xray_system_yaml is defined
|
||||||
|
|
||||||
|
- name: configure system yaml template
|
||||||
|
template:
|
||||||
|
src: "{{ xray_system_yaml_template }}"
|
||||||
|
dest: "{{ xray_home }}/var/etc/system.yaml"
|
||||||
|
become: yes
|
||||||
|
when: xray_system_yaml is not defined
|
||||||
|
|
||||||
- name: ensure {{ xray_home }}/var/etc/security/ exists
|
- name: ensure {{ xray_home }}/var/etc/security/ exists
|
||||||
file:
|
file:
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ resources:
|
|||||||
gitProvider: jefferyfryGithub
|
gitProvider: jefferyfryGithub
|
||||||
path: jefferyfry/JFrog-Cloud-Installers
|
path: jefferyfry/JFrog-Cloud-Installers
|
||||||
pipelines:
|
pipelines:
|
||||||
- name: ansible_aws_azure_automation_pipeline
|
- name: ansible_automation_pipeline
|
||||||
steps:
|
steps:
|
||||||
- name: execute_aws_ansible_playbook
|
- name: execute_aws_ansible_playbook
|
||||||
type: Bash
|
type: Bash
|
||||||
@@ -53,58 +53,6 @@ pipelines:
|
|||||||
- ls
|
- ls
|
||||||
- eval $(ssh-agent -s)
|
- eval $(ssh-agent -s)
|
||||||
- ssh-add <(echo "$int_ansiblePrivateKey_key")
|
- ssh-add <(echo "$int_ansiblePrivateKey_key")
|
||||||
- ansible-playbook Ansible/test/aws/playbook.yaml
|
- ansible-playbook Ansible/test/aws/playbook-ha-install.yaml
|
||||||
onComplete:
|
onComplete:
|
||||||
- echo "AWS Ansible playbook complete."
|
- 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.yaml
|
|
||||||
onComplete:
|
|
||||||
- echo "Azure Ansible playbook complete."
|
|
||||||
@@ -84,6 +84,11 @@
|
|||||||
- { db_name: "xraydb", db_owner: "xray" }
|
- { db_name: "xraydb", db_owner: "xray" }
|
||||||
groups: database
|
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
|
- name: Set up test environment url
|
||||||
replace:
|
replace:
|
||||||
path: ../tests/src/test/resources/testenv.yaml
|
path: ../tests/src/test/resources/testenv.yaml
|
||||||
@@ -140,12 +145,7 @@
|
|||||||
- name: Test
|
- name: Test
|
||||||
hosts: localhost
|
hosts: localhost
|
||||||
tasks:
|
tasks:
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
shell:
|
shell:
|
||||||
cmd: ./gradlew clean unified_test
|
cmd: ./gradlew clean unified_test
|
||||||
chdir: ../tests/
|
chdir: ../tests/
|
||||||
- name: Cleanup and delete stack
|
|
||||||
cloudformation:
|
|
||||||
stack_name: "{{ lookup('env', 'stack_name') }}"
|
|
||||||
region: "us-east-1"
|
|
||||||
state: "absent"
|
|
||||||
172
Ansible/test/aws/playbook-ha-upgrade.yaml
Normal file
172
Ansible/test/aws/playbook-ha-upgrade.yaml
Normal file
@@ -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
|
||||||
@@ -1,3 +1,12 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
ansible-playbook Ansible/test/aws/playbook.yaml
|
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
|
||||||
14
Ansible/test/aws/runAwsUpgrade.sh
Executable file
14
Ansible/test/aws/runAwsUpgrade.sh
Executable file
@@ -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
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,6 @@
|
|||||||
artifactory:
|
artifactory:
|
||||||
url: urlval
|
url: http://Ansib-Appli-1NLZU3V2AGK49-291976964.us-east-1.elb.amazonaws.com
|
||||||
external_ip: ipval
|
external_ip: Ansib-Appli-1NLZU3V2AGK49-291976964.us-east-1.elb.amazonaws.com
|
||||||
distribution: artifactory_ha
|
distribution: artifactory_ha
|
||||||
rt_username: admin
|
rt_username: admin
|
||||||
rt_password: passval
|
rt_password: password
|
||||||
6
Ansible/test/tests/src/test/resources/testenv_tpl.yaml
Normal file
6
Ansible/test/tests/src/test/resources/testenv_tpl.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
artifactory:
|
||||||
|
url: urlval
|
||||||
|
external_ip: ipval
|
||||||
|
distribution: artifactory_ha
|
||||||
|
rt_username: admin
|
||||||
|
rt_password: passval
|
||||||
Reference in New Issue
Block a user