Updates to support publishing to Ansible Galaxy.

This commit is contained in:
jefferyfry
2020-06-16 15:12:58 -07:00
parent 0ee82ab290
commit 49cf1503de
57 changed files with 218 additions and 281 deletions

View File

@@ -1,2 +0,0 @@
---
# defaults file for artifactory-nginx

View File

@@ -1,2 +0,0 @@
---
# handlers file for artifactory-nginx

View File

@@ -1,53 +0,0 @@
galaxy_info:
author: your name
description: your role description
company: your company (optional)
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Choose a valid license ID from https://spdx.org - some suggested licenses:
# - BSD-3-Clause (default)
# - MIT
# - GPL-2.0-or-later
# - GPL-3.0-only
# - Apache-2.0
# - CC-BY-4.0
license: license (GPL-2.0-or-later, MIT, etc)
min_ansible_version: 2.9
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
#
# Provide a list of supported platforms, and for each platform a list of versions.
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
# To view available platforms and versions (or releases), visit:
# https://galaxy.ansible.com/api/v1/platforms/
#
# platforms:
# - name: Fedora
# versions:
# - all
# - 25
# - name: SomePlatform
# versions:
# - all
# - 1.0
# - 7
# - 99.99
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
# if you add dependencies to this list.

View File

@@ -1,5 +0,0 @@
---
- hosts: localhost
remote_user: root
roles:
- artifactory-nginx

View File

@@ -1,2 +0,0 @@
---
# vars file for artifactory-nginx

View File

@@ -1,2 +0,0 @@
---
# defaults file for artifactory-nginx

View File

@@ -1,2 +0,0 @@
---
# handlers file for artifactory-nginx

View File

@@ -1,53 +0,0 @@
galaxy_info:
author: your name
description: your role description
company: your company (optional)
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Choose a valid license ID from https://spdx.org - some suggested licenses:
# - BSD-3-Clause (default)
# - MIT
# - GPL-2.0-or-later
# - GPL-3.0-only
# - Apache-2.0
# - CC-BY-4.0
license: license (GPL-2.0-or-later, MIT, etc)
min_ansible_version: 2.9
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
#
# Provide a list of supported platforms, and for each platform a list of versions.
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
# To view available platforms and versions (or releases), visit:
# https://galaxy.ansible.com/api/v1/platforms/
#
# platforms:
# - name: Fedora
# versions:
# - all
# - 25
# - name: SomePlatform
# versions:
# - all
# - 1.0
# - 7
# - 99.99
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
# if you add dependencies to this list.

View File

@@ -1,3 +0,0 @@
---
# No dependencies for Debian

View File

@@ -1,5 +0,0 @@
---
- hosts: localhost
remote_user: root
roles:
- artifactory-nginx

View File

@@ -1,2 +0,0 @@
---
# vars file for artifactory-nginx

View File

@@ -0,0 +1,32 @@
# artifactory
The artifactory role installs the Artifactory Pro software onto the host. Per the Vars below, it will configure a node as primary or secondary. This role uses secondary roles artifactory_nginx to install nginx.
## Role Variables
* _artifactory_version_: The version of Artifactory to install. eg. "7.4.1"
* _master_key_: This is the Artifactory [Master Key](https://www.jfrog.com/confluence/display/JFROG/Managing+Keys). See below to [autogenerate this key](#autogenerating-master-and-join-keys).
* _join_key_: This is the Artifactory [Join Key](https://www.jfrog.com/confluence/display/JFROG/Managing+Keys). See below to [autogenerate this key](#autogenerating-master-and-join-keys).
* _db_download_url_: This is the download URL for the JDBC driver for your database. eg. "https://jdbc.postgresql.org/download/postgresql-42.2.12.jar"
* _db_type_: This is the database type. eg. "postgresql"
* _db_driver_: This is the JDBC driver class. eg. "org.postgresql.Driver"
* _db_url_: This is the JDBC database url. eg. "jdbc:postgresql://10.0.0.120:5432/artifactory"
* _db_user_: The database user to configure. eg. "artifactory"
* _db_password_: The database password to configure. "Art1fact0ry"
* _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.**
* _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.
### primary vars (vars used by the primary Artifactory server)
* _artifactory_is_primary_: For the primary node this must be set to **true**.
* _artifactory_license1 - 5_: These are the cluster licenses.
* _artifactory_license_file_: Your own license file can be used. **If specified, a license file constructed from the licenses above will not be used.**
### secondary vars (vars used by the secondary Artifactory server)
* _artifactory_is_primary_: For the secondary node(s) this must be set to **false**.
## Example Playbook
```
---
- hosts: primary
roles:
- artifactory
```

View File

@@ -1,6 +0,0 @@
---
exceptions:
- variation: Alpine
reason: Artifactory start/stop scripts don't properly work.
- variation: amazonlinux:1
reason: "Shutting down artifactory: /usr/bin/java\nfinding\nUsing the default catalina management port (8015) to test shutdown\nArtifactory Tomcat already stopped"

View File

@@ -1,35 +1,16 @@
---
galaxy_info:
author: Robert de Bock
role_name: artifactory
description: Install and configure artifactory on your system.
license: Apache-2.0
company: none
min_ansible_version: 2.8
author: "Jeff Fry <jefff@jfrog.com>"
description: "The artifactory role installs the Artifactory Pro software onto the host. Per the Vars below, it will configure a node as primary or secondary. This role uses secondary roles artifactory_nginx to install nginx."
company: JFrog
platforms:
- name: Debian
versions:
- all
- name: EL
versions:
- 7
- 8
- name: Fedora
versions:
- all
- name: OpenSUSE
versions:
- all
- name: Ubuntu
versions:
- bionic
issue_tracker_url: "https://github.com/jfrog/JFrog-Cloud-Installers/issues"
license: license (GPL-2.0-or-later)
min_ansible_version: 2.9
galaxy_tags:
- artifactory
- centos
- redhat
- server
- system
- jfrog
dependencies: []
dependencies: []

View File

@@ -1,2 +0,0 @@
---
tox_parallel: yes

View File

@@ -1,6 +0,0 @@
---
project_name: JFrog
reference: "https://github.com/robertdebock/ansible-role-artifactory/blob/master/defaults/main.yml"
versions:
- name: Artifactory
url: "https://dl.bintray.com/jfrog/artifactory/"

View File

@@ -2,7 +2,7 @@
# tasks file for artifactory
- name: install nginx
include_role:
name: artifactory-nginx
name: artifactory_nginx
- name: create group for artifactory
group:

View File

@@ -0,0 +1,5 @@
# artifactory_nginx
This role installs NGINX for artifactory. This role is automatically called by the artifactory role and isn't intended to be used separately.
## Role Variables
* _server_name_: This is the server name. eg. "artifactory.54.175.51.178.xip.io"

View File

@@ -0,0 +1,2 @@
---
# defaults file for artifactory_nginx

View File

@@ -0,0 +1,2 @@
---
# handlers file for artifactory_nginx

View File

@@ -0,0 +1,16 @@
galaxy_info:
author: "Jeff Fry <jefff@jfrog.com>"
description: "This role installs NGINX for artifactory. This role is automatically called by the artifactory role and isn't intended to be used separately."
company: JFrog
issue_tracker_url: "https://github.com/jfrog/JFrog-Cloud-Installers/issues"
license: license (GPL-2.0-or-later)
min_ansible_version: 2.9
galaxy_tags:
- artifactory
- jfrog
dependencies: []

View File

@@ -0,0 +1,9 @@
---
- name: apt-get update
apt:
update_cache: yes
register: package_res
retries: 5
delay: 60
become: yes
until: package_res is success

View File

@@ -0,0 +1,2 @@
---
# vars file for artifactory_nginx

View File

@@ -0,0 +1,16 @@
# artifactory_nginx_ssl
The artifactory_nginx_ssl role installs and configures nginx for SSL.
## Role Variables
* _server_name_: This is the server name. eg. "artifactory.54.175.51.178.xip.io"
* _certificate_: This is the SSL cert.
* _certificate_key_: This is the SSL private key.
## Example Playbook
```
---
- hosts: primary
roles:
- artifactory
- artifactory_nginx_ssl
```

View File

@@ -0,0 +1,2 @@
---
# defaults file for artifactory_nginx

View File

@@ -0,0 +1,2 @@
---
# handlers file for artifactory_nginx

View File

@@ -0,0 +1,16 @@
galaxy_info:
author: "Jeff Fry <jefff@jfrog.com>"
description: "The artifactory_nginx_ssl role installs and configures nginx for SSL."
company: JFrog
issue_tracker_url: "https://github.com/jfrog/JFrog-Cloud-Installers/issues"
license: license (GPL-2.0-or-later)
min_ansible_version: 2.9
galaxy_tags:
- artifactory
- jfrog
dependencies: []

View File

@@ -1,5 +1,5 @@
---
# tasks file for artifactory-nginx
# tasks file for artifactory_nginx
- name: configure the artifactory nginx conf
template:
src: artifactory.conf.j2

View File

@@ -0,0 +1,2 @@
---
# vars file for artifactory_nginx

View File

@@ -0,0 +1,14 @@
# postgres
The postgres role will install Postgresql software and configure a database and user to support an Artifactory or Xray server.
### Role Variables
* _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" }
## Example Playbook
```
---
- hosts: database
roles:
- postgres
```

View File

@@ -1,25 +1,16 @@
---
galaxy_info:
role_name: postgres_server
author: Jeff Fry
description: Installation of Postgres for Artifactory HA
author: "Jeff Fry <jefff@jfrog.com>"
description: "The postgres role will install Postgresql software and configure a database and user to support an Artifactory or Xray server."
company: JFrog
min_ansible_version: 2.8
platforms:
- name: Fedora
versions:
- 27
- 29
- name: Ubuntu
versions:
- xenial
- bionic
- name: Debian
versions:
- stretch
issue_tracker_url: "https://github.com/jfrog/JFrog-Cloud-Installers/issues"
license: license (GPL-2.0-or-later)
min_ansible_version: 2.9
galaxy_tags:
- postgres
- postgresql
- jfrog
dependencies: []
dependencies: []

View File

@@ -0,0 +1,22 @@
# xray
The xray role will install Xray software onto the host. An Artifactory server and Postgress database is required.
### Role Variables
* _xray_version_: The version of Artifactory to install. eg. "3.3.0"
* _jfrog_url_: This is the URL to the Artifactory base URL. eg. "http://ec2-54-237-207-135.compute-1.amazonaws.com"
* _master_key_: This is the Artifactory [Master Key](https://www.jfrog.com/confluence/display/JFROG/Managing+Keys). See below to [autogenerate this key](#autogenerating-master-and-join-keys).
* _join_key_: This is the Artifactory [Join Key](https://www.jfrog.com/confluence/display/JFROG/Managing+Keys). See below to [autogenerate this key](#autogenerating-master-and-join-keys).
* _db_type_: This is the database type. eg. "postgresql"
* _db_driver_: This is the JDBC driver class. eg. "org.postgresql.Driver"
* _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_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.
## Example Playbook
```
---
- hosts: xray
roles:
- xray
```

View File

@@ -1,53 +1,16 @@
galaxy_info:
author: your name
description: your role description
company: your company (optional)
author: "Jeff Fry <jefff@jfrog.com>"
description: "The xray role will install Xray software onto the host. An Artifactory server and Postgress database is required."
company: JFrog
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
issue_tracker_url: "https://github.com/jfrog/JFrog-Cloud-Installers/issues"
# Choose a valid license ID from https://spdx.org - some suggested licenses:
# - BSD-3-Clause (default)
# - MIT
# - GPL-2.0-or-later
# - GPL-3.0-only
# - Apache-2.0
# - CC-BY-4.0
license: license (GPL-2.0-or-later, MIT, etc)
license: license (GPL-2.0-or-later)
min_ansible_version: 2.9
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
galaxy_tags:
- xray
- jfrog
#
# Provide a list of supported platforms, and for each platform a list of versions.
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
# To view available platforms and versions (or releases), visit:
# https://galaxy.ansible.com/api/v1/platforms/
#
# platforms:
# - name: Fedora
# versions:
# - all
# - 25
# - name: SomePlatform
# versions:
# - all
# - 1.0
# - 7
# - 99.99
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
# if you add dependencies to this list.
dependencies: []

View File

@@ -44,7 +44,7 @@
owner: "{{ xray_user }}"
group: "{{ xray_group }}"
become: yes
- name: configure system yaml
template:
src: system.yaml.j2

View File

@@ -1,2 +0,0 @@
localhost

View File

@@ -1,5 +0,0 @@
---
- hosts: localhost
remote_user: root
roles:
- xray