Single Node Installation
The following installation installs the JFrog Platform as single product (single node) installations and not as clusters/HA.
Install the Ansible Collection from the Ansible Galaxy.
Verify that you reference the Ansible Collection in your playbook when using these roles.
Ansible uses SSH to connect to hosts. Verify that your SSH private key is on your client and that the public keys are installed on your Ansible hosts.
Create an inventory file: Use one of the examples from the examples directory to construct an inventory file (
hosts.yml) with the host addresses and variables.
Next, create your playbook: Use one of the examples from the examples directory to construct a playbook using the JFrog Ansible roles. These roles will be applied to your inventory and provision software.
Execute the following command to provision the JFrog software with Ansible.
Generating Master and Join Keys
Generate the master and join keys. If you do not provide these keys, they will be set to the defaults in the
groupvars/all/vars.yaml fileunder each role. For production deployments, you may want to generate your master and join keys and to apply them to all the nodes using the following command.
Remember to save the generated master and join keys for future upgrades.
Overriding the system.yaml in Ansible Installations
By default, the flag
<product>_systemyaml_override is set to false, which means that any changes you do to override/edit the existing yaml will not be applied.
By setting this flag to true, e.g.,
artifactory_systemyaml_override: true, you can then override the existing configurations for the product, in this case Artifactory.
Using Ansible Vault to Encrypt Vars
Some vars you may want to keep secret. You may put these vars into a separate file and encrypt them using the Ansible Vault.
Use the following command.
Then in your playbook include the secret vars file.
Using an External Database
If you want to use an external database for one or more products, you will need to run the PostgreSQL role as part of the
platform.yml file. You can also do this by setting the value of the
postgres_enabled field as false in
Create an external database and change the corresponding product values in
The following example shows a sample configuration for Artifactory.
High Availability (HA) Installation
By default, the Ansible Platform Collection is installed in a single node configuration. Currently, HA is supported for Artifactory and not the other products.
To enable HA for Artifactory, set the following as true in roles/artifactory/defaults/main.yml inside the Ansible Platform Collection.
You can also enable HA by setting extra-vars by running the following command if you are doing a fresh installation.
You can enable HA for an existing single node installation by running the following command.
By default, all nodes are installed as primary nodes, which means that all nodes in the high availability cluster can perform tasks such as replication, garbage collection, backups, exporting, and importing. Every node in the cluster can serve any of the mentioned tasks and if any node goes down, the different nodes in the cluster will be able to perform these tasks instead. By default, when adding a new node (member) to the cluster, it will be able to perform cluster-wide tasks without user intervention.
"taskAffinity": "any" attribute is set by default, on all the nodes in the cluster, when installing an Artifactory version 7.17.4 and above and is configured under the
Nodes section in the Artifactory Configuration YAML. To remove this functionality from a node, set
"taskAffinity": "none". For more information, see Cloud-Native High Availability.
Building the Collection Archive
galaxy.ymlmeta file as needed. Update the version.
Build the archive (this requires Ansible 2.9+).