How can we host our own Ansible Galaxy server?

Hi there,

In our company X we have many Ansible roles & playbooks spread among different repositories, all the playbooks follow the Ansible playbook best-practices guide.

I’m looking for a way to modularize all those playbook repos.

In order to achieve that, I found that hosting our own Ansible Galaxy server would be the best choice since:

  • we can easily re-use roles without having duplicate code in each repo,
  • we can also impose a good standard over Ansible Roles (referring here to properly documenting the role’s ./meta/main.yml & README.md et. al. ),
  • not to mention, we would force everyone to create a NEW repo for each role instead of pushing everything in a single repo (calling this practice: crapload-repo = usually the size of Gigabytes and takes some time to download).

So my questions here are:

  1. how did you configured your own Ansible Galaxy server?
  2. can a simple Nginx server with default nginx.conf do?
  3. could you give me a list of prerequisites of setting this up, or guide me to some resources?

Thank you!

You should go to https://github.com/ansible/galaxy.

An alternative route that we use, replace galaxy with Git repository manager.

In Gitlab we have a group called "Ansible roles".
Each role have it own git repository in this group with README.md and a meta/main.yml.

In the ansible repositories that need the roles
requirements.yml:

Thank you very much Brian & Kai for suggestions.

I find Kai’s approach more tempting to use first. Then if this isn’t going to work out, I’ll try compiling galaxy & running on server.

Regards,

If you have a *lot* of roles and need things like searchability and
discoverability via API, Galaxy is a good choice -- but if you don't
need all of that, Kai's solution is definitely sufficient.

--g

I wanted to go with Ansible Galaxy at first, but I tried it locally and ansible-container was failing to start the django app because the image doesn’t exist. Also the process of Powering up Ansible Galaxy is not fully documented :slight_smile: all I did was look how you guys start it in TravisCI.

Hi,

Sorry to revive this old thread, but can someone please point me to documentation on how to use requirements.yml using Git as source instead of Galaxy server?
Does that approach also use the “ansible-galaxy” cli ?

Thanks

See example in requirements example file
https://galaxy.ansible.com/docs/using/installing.html#installing-multiple-roles-from-a-file

Thank you for this.

Is there any docker /container installation packages?