├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE
├── stale.yml
└── workflows
│ └── ci.yml
├── .gitignore
├── .yamllint
├── CHANGELOG.md
├── Dockerfile
├── LICENSE
├── README.md
├── Vagrantfile
├── composer.json
├── default.config.yml
├── docs
├── configurations
│ ├── base-os.md
│ ├── databases-mariadb.md
│ ├── databases-mysql.md
│ ├── databases-postgresql.md
│ ├── php.md
│ ├── webservers-apache.md
│ └── webservers-nginx.md
├── deployment
│ ├── composer-dependency.md
│ ├── composer-package.md
│ ├── composer.md
│ ├── drush-make.md
│ ├── git.md
│ ├── local-codebase.md
│ └── multisite.md
├── extending
│ ├── ansible-args.md
│ ├── scripts.md
│ └── vagrantfile.md
├── extras
│ ├── adminer.md
│ ├── blackfire.md
│ ├── drupal-console.md
│ ├── drush.md
│ ├── elasticsearch.md
│ ├── java.md
│ ├── mailhog.md
│ ├── memcached.md
│ ├── newrelic.md
│ ├── nodejs.md
│ ├── redis.md
│ ├── ruby.md
│ ├── selenium.md
│ ├── solr.md
│ ├── tideways.md
│ ├── upload-progress.md
│ ├── varnish.md
│ ├── xdebug.md
│ └── xhprof.md
├── getting-started
│ ├── configure-drupalvm.md
│ ├── installation-linux.md
│ ├── installation-macos.md
│ ├── installation-windows.md
│ └── syncing-folders.md
├── images
│ └── drupal-vm-logo.png
├── index.md
├── js
│ └── fix_search.js
└── other
│ ├── acquia.md
│ ├── bigpipe.md
│ ├── custom-base-box.md
│ ├── docker.md
│ ├── drupal-6.md
│ ├── management-tools.md
│ ├── networking.md
│ ├── performance.md
│ ├── production.md
│ ├── vagrant-lxc.md
│ └── wordpress-other-applications.md
├── example.docker-compose.yml
├── example.drupal.composer.json
├── example.drupal.make.yml
├── examples
└── scripts
│ ├── README.md
│ ├── configure-solr.sh
│ └── pareview.sh
├── lib
└── drupalvm
│ └── vagrant.rb
├── mkdocs.yml
├── molecule
└── default
│ ├── converge.yml
│ ├── molecule.yml
│ ├── ubuntu1804-php74.config.yml
│ ├── ubuntu1804-postgresql.config.yml
│ └── verify.yml
└── provisioning
├── README.md
├── ansible.cfg
├── docker
├── bake.sh
├── bin
│ └── install-drupal
├── load-image.sh
├── parse-yaml.sh
├── save-image.sh
└── vars
│ └── docker-hub-overrides.yml
├── playbook.yml
├── requirements.yml
├── roles
├── arknoll.selenium
│ ├── .gitignore
│ ├── .travis.yml
│ ├── LICENSE.txt
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ │ ├── selenium-init-Debian.j2
│ │ ├── selenium-init-RedHat.j2
│ │ └── selenium-unit.j2
│ ├── tests
│ │ ├── README.md
│ │ ├── requirements.yml
│ │ └── test.yml
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── drupalvm.hostname
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ └── tasks
│ │ └── main.yml
├── drupalvm.vagrant-nfs-fix
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ └── templates
│ │ ├── vagrant-nfs-fix.j2
│ │ └── vagrant-nfs-fix.unit.j2
├── drupalvm.www
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ └── tasks
│ │ └── main.yml
├── geerlingguy.adminer
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ ├── requirements.yml
│ │ │ └── standalone.yml
│ ├── tasks
│ │ └── main.yml
│ └── templates
│ │ └── adminer.conf.j2
├── geerlingguy.apache-php-fpm
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── meta
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ └── tests
│ │ └── test.yml
├── geerlingguy.apache
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ └── molecule.yml
│ ├── tasks
│ │ ├── configure-Debian.yml
│ │ ├── configure-RedHat.yml
│ │ ├── configure-Solaris.yml
│ │ ├── configure-Suse.yml
│ │ ├── main.yml
│ │ ├── setup-Debian.yml
│ │ ├── setup-RedHat.yml
│ │ ├── setup-Solaris.yml
│ │ └── setup-Suse.yml
│ ├── templates
│ │ └── vhosts.conf.j2
│ └── vars
│ │ ├── AmazonLinux.yml
│ │ ├── Debian.yml
│ │ ├── RedHat.yml
│ │ ├── Solaris.yml
│ │ ├── Suse.yml
│ │ ├── apache-22.yml
│ │ └── apache-24.yml
├── geerlingguy.blackfire
│ ├── .ansible-lint
│ ├── .github
│ │ └── FUNDING.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ └── requirements.yml
│ └── tasks
│ │ ├── main.yml
│ │ ├── setup-Debian.yml
│ │ └── setup-RedHat.yml
├── geerlingguy.composer
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ └── requirements.yml
│ ├── tasks
│ │ ├── global-require.yml
│ │ ├── main.yml
│ │ └── project-bin.yml
│ └── templates
│ │ ├── auth.json.j2
│ │ ├── composer-project.sh.j2
│ │ └── composer.sh.j2
├── geerlingguy.daemonize
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ └── molecule.yml
│ └── tasks
│ │ └── main.yml
├── geerlingguy.drupal-console
│ ├── .gitignore
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ └── tests
│ │ ├── README.md
│ │ ├── requirements.yml
│ │ ├── test-self-update.yml
│ │ └── test.yml
├── geerlingguy.drupal
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── deploy.yml
│ │ │ ├── molecule.yml
│ │ │ ├── requirements.yml
│ │ │ ├── test-setup.yml
│ │ │ └── test-vars.yml
│ └── tasks
│ │ ├── backwards-compatibility.yml
│ │ ├── build-composer-project.yml
│ │ ├── build-composer.yml
│ │ ├── build-makefile.yml
│ │ ├── deploy.yml
│ │ ├── install-site.yml
│ │ ├── main.yml
│ │ └── update.yml
├── geerlingguy.drush
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── composer.yml
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ ├── requirements.yml
│ │ │ └── source.yml
│ └── tasks
│ │ ├── install-drush-composer.yml
│ │ ├── install-drush-launcher.yml
│ │ ├── install-source.yml
│ │ └── main.yml
├── geerlingguy.elasticsearch
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ └── requirements.yml
│ ├── tasks
│ │ ├── main.yml
│ │ ├── setup-Debian.yml
│ │ └── setup-RedHat.yml
│ └── templates
│ │ ├── elasticsearch.repo.j2
│ │ ├── elasticsearch.yml.j2
│ │ ├── heap.options.j2
│ │ └── jvm.options.j2
├── geerlingguy.firewall
│ ├── .github
│ │ ├── FUNDING.yml
│ │ └── stale.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ └── molecule.yml
│ ├── tasks
│ │ ├── disable-other-firewalls.yml
│ │ └── main.yml
│ └── templates
│ │ ├── firewall.bash.j2
│ │ ├── firewall.init.j2
│ │ └── firewall.unit.j2
├── geerlingguy.git
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ └── stale.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ └── playbook-source.yml
│ ├── tasks
│ │ ├── install-from-source.yml
│ │ └── main.yml
│ └── vars
│ │ ├── Debian.yml
│ │ ├── Fedora.yml
│ │ ├── RedHat.yml
│ │ └── main.yml
├── geerlingguy.java
│ ├── .github
│ │ ├── FUNDING.yml
│ │ └── stale.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ └── molecule.yml
│ ├── tasks
│ │ ├── main.yml
│ │ ├── setup-Debian.yml
│ │ ├── setup-FreeBSD.yml
│ │ └── setup-RedHat.yml
│ ├── templates
│ │ └── java_home.sh.j2
│ └── vars
│ │ ├── Debian-10.yml
│ │ ├── Debian-8.yml
│ │ ├── Debian-9.yml
│ │ ├── Fedora.yml
│ │ ├── FreeBSD.yml
│ │ ├── RedHat-6.yml
│ │ ├── RedHat-7.yml
│ │ ├── RedHat-8.yml
│ │ ├── Ubuntu-12.yml
│ │ ├── Ubuntu-14.yml
│ │ ├── Ubuntu-16.yml
│ │ ├── Ubuntu-18.yml
│ │ └── Ubuntu-20.yml
├── geerlingguy.mailhog
│ ├── .ansible-lint
│ ├── .gitignore
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── molecule.yml
│ │ │ ├── playbook.yml
│ │ │ ├── requirements.yml
│ │ │ ├── test-message
│ │ │ └── yaml-lint.yml
│ ├── tasks
│ │ └── main.yml
│ └── templates
│ │ ├── mailhog.init.j2
│ │ └── mailhog.unit.j2
├── geerlingguy.memcached
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ └── molecule.yml
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ │ ├── memcached-Debian.conf.j2
│ │ └── memcached-RedHat.conf.j2
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── geerlingguy.mysql
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ └── molecule.yml
│ ├── tasks
│ │ ├── configure.yml
│ │ ├── databases.yml
│ │ ├── main.yml
│ │ ├── replication.yml
│ │ ├── secure-installation.yml
│ │ ├── setup-Archlinux.yml
│ │ ├── setup-Debian.yml
│ │ ├── setup-RedHat.yml
│ │ ├── users.yml
│ │ └── variables.yml
│ ├── templates
│ │ ├── my.cnf.j2
│ │ ├── root-my.cnf.j2
│ │ └── user-my.cnf.j2
│ └── vars
│ │ ├── Archlinux.yml
│ │ ├── Debian-10.yml
│ │ ├── Debian.yml
│ │ ├── RedHat-7.yml
│ │ └── RedHat-8.yml
├── geerlingguy.nginx
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ └── molecule.yml
│ ├── tasks
│ │ ├── main.yml
│ │ ├── setup-Archlinux.yml
│ │ ├── setup-Debian.yml
│ │ ├── setup-FreeBSD.yml
│ │ ├── setup-OpenBSD.yml
│ │ ├── setup-RedHat.yml
│ │ ├── setup-Ubuntu.yml
│ │ └── vhosts.yml
│ ├── templates
│ │ ├── nginx.conf.j2
│ │ ├── nginx.repo.j2
│ │ └── vhost.j2
│ └── vars
│ │ ├── Archlinux.yml
│ │ ├── Debian.yml
│ │ ├── FreeBSD.yml
│ │ ├── OpenBSD.yml
│ │ ├── RedHat.yml
│ │ └── Rocky.yml
├── geerlingguy.nodejs
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ └── playbook-latest.yml
│ ├── tasks
│ │ ├── main.yml
│ │ ├── setup-Debian.yml
│ │ └── setup-RedHat.yml
│ └── templates
│ │ └── npm.sh.j2
├── geerlingguy.php-memcached
│ ├── .gitignore
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── memcached-test.php
│ │ │ ├── molecule.yml
│ │ │ ├── playbook.yml
│ │ │ ├── requirements.yml
│ │ │ ├── tests
│ │ │ └── test_default.py
│ │ │ └── yaml-lint.yml
│ ├── tasks
│ │ └── main.yml
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── geerlingguy.php-mysql
│ ├── .github
│ │ ├── FUNDING.yml
│ │ └── stale.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ └── requirements.yml
│ ├── tasks
│ │ └── main.yml
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── geerlingguy.php-pecl
│ ├── .ansible-lint
│ ├── .github
│ │ └── FUNDING.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ ├── pecl-test.php
│ │ │ └── requirements.yml
│ ├── tasks
│ │ └── main.yml
│ └── vars
│ │ ├── Debian-8.yml
│ │ ├── Debian.yml
│ │ ├── RedHat.yml
│ │ └── Ubuntu.yml
├── geerlingguy.php-pgsql
│ ├── .gitignore
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── molecule.yml
│ │ │ ├── playbook.yml
│ │ │ ├── requirements.yml
│ │ │ ├── tests
│ │ │ └── test_default.py
│ │ │ └── yaml-lint.yml
│ ├── tasks
│ │ └── main.yml
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── geerlingguy.php-redis
│ ├── .gitignore
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── files
│ │ └── redis.ini
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── molecule.yml
│ │ │ ├── playbook.yml
│ │ │ ├── redis-test.php
│ │ │ ├── requirements.yml
│ │ │ └── yaml-lint.yml
│ ├── tasks
│ │ ├── install-from-source.yml
│ │ └── main.yml
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── geerlingguy.php-tideways
│ ├── .gitignore
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── molecule.yml
│ │ │ ├── playbook.yml
│ │ │ ├── requirements.yml
│ │ │ ├── tests
│ │ │ └── test_default.py
│ │ │ ├── tideways-test.php
│ │ │ └── yaml-lint.yml
│ ├── tasks
│ │ ├── configure.yml
│ │ ├── main.yml
│ │ └── xhprof.yml
│ ├── templates
│ │ └── tideways.ini.j2
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── geerlingguy.php-versions
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── 7.3.yml
│ │ │ ├── 8.0.yml
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ └── requirements.yml
│ ├── tasks
│ │ ├── main.yml
│ │ ├── setup-Debian.yml
│ │ └── setup-RedHat.yml
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── geerlingguy.php-xdebug
│ ├── .gitignore
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── molecule.yml
│ │ │ ├── playbook.yml
│ │ │ ├── requirements.yml
│ │ │ ├── xdebug-test.php
│ │ │ └── yaml-lint.yml
│ ├── tasks
│ │ ├── configure.yml
│ │ └── main.yml
│ ├── templates
│ │ └── xdebug.ini.j2
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── geerlingguy.php-xhprof
│ ├── .gitignore
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── molecule.yml
│ │ │ ├── playbook.yml
│ │ │ ├── requirements.yml
│ │ │ ├── xhprof-test.php
│ │ │ └── yaml-lint.yml
│ ├── tasks
│ │ ├── configure.yml
│ │ └── main.yml
│ ├── templates
│ │ └── xhprof.ini.j2
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── geerlingguy.php
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ ├── requirements.yml
│ │ │ └── source-install.yml
│ ├── tasks
│ │ ├── configure-apcu.yml
│ │ ├── configure-fpm.yml
│ │ ├── configure-opcache.yml
│ │ ├── configure.yml
│ │ ├── install-from-source.yml
│ │ ├── main.yml
│ │ ├── setup-Debian.yml
│ │ └── setup-RedHat.yml
│ ├── templates
│ │ ├── apc.ini.j2
│ │ ├── fpm-init.j2
│ │ ├── opcache.ini.j2
│ │ ├── php-fpm.conf.j2
│ │ ├── php.ini.j2
│ │ └── www.conf.j2
│ └── vars
│ │ ├── Debian-10.yml
│ │ ├── Debian-11.yml
│ │ ├── Debian-9.yml
│ │ ├── Debian.yml
│ │ ├── RedHat.yml
│ │ ├── Ubuntu-16.yml
│ │ ├── Ubuntu-18.yml
│ │ └── Ubuntu-20.yml
├── geerlingguy.postfix
│ ├── .gitignore
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ └── tests
│ │ ├── README.md
│ │ └── test.yml
├── geerlingguy.postgresql
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ └── molecule.yml
│ ├── tasks
│ │ ├── configure.yml
│ │ ├── databases.yml
│ │ ├── initialize.yml
│ │ ├── main.yml
│ │ ├── setup-Debian.yml
│ │ ├── setup-RedHat.yml
│ │ ├── users.yml
│ │ ├── users_props.yml
│ │ └── variables.yml
│ ├── templates
│ │ ├── pg_hba.conf.j2
│ │ └── postgres.sh.j2
│ └── vars
│ │ ├── Debian-10.yml
│ │ ├── Debian-7.yml
│ │ ├── Debian-8.yml
│ │ ├── Debian-9.yml
│ │ ├── Fedora-29.yml
│ │ ├── Fedora-30.yml
│ │ ├── Fedora-31.yml
│ │ ├── Fedora-32.yml
│ │ ├── RedHat-7.yml
│ │ ├── RedHat-8.yml
│ │ ├── Ubuntu-16.yml
│ │ ├── Ubuntu-18.yml
│ │ └── Ubuntu-20.yml
├── geerlingguy.redis
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ └── molecule.yml
│ ├── tasks
│ │ ├── main.yml
│ │ ├── setup-Archlinux.yml
│ │ ├── setup-Debian.yml
│ │ └── setup-RedHat.yml
│ ├── templates
│ │ └── redis.conf.j2
│ └── vars
│ │ ├── Archlinux.yml
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── geerlingguy.repo-epel
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ └── molecule.yml
│ └── tasks
│ │ └── main.yml
├── geerlingguy.repo-remi
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ └── stale.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ └── requirements.yml
│ └── tasks
│ │ └── main.yml
├── geerlingguy.ruby
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── files
│ │ └── rubygems.sh
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ └── source-install.yml
│ ├── tasks
│ │ ├── install-from-source.yml
│ │ ├── main.yml
│ │ ├── setup-Debian.yml
│ │ └── setup-RedHat.yml
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── geerlingguy.security
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ └── stale.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ └── molecule.yml
│ ├── tasks
│ │ ├── autoupdate-Debian.yml
│ │ ├── autoupdate-RedHat.yml
│ │ ├── fail2ban.yml
│ │ ├── main.yml
│ │ └── ssh.yml
│ ├── templates
│ │ ├── 10periodic.j2
│ │ ├── 50unattended-upgrades.j2
│ │ └── jail.local.j2
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── geerlingguy.solr
│ ├── .ansible-lint
│ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── stale.yml
│ │ └── workflows
│ │ │ ├── ci.yml
│ │ │ └── release.yml
│ ├── .gitignore
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ ├── requirements.yml
│ │ │ ├── solr-3.yml
│ │ │ ├── solr-4.yml
│ │ │ ├── solr-5.yml
│ │ │ ├── solr-6.yml
│ │ │ └── solr-7.yml
│ ├── tasks
│ │ ├── configure.yml
│ │ ├── cores.yml
│ │ ├── install-pre5.yml
│ │ ├── install.yml
│ │ ├── main.yml
│ │ ├── trim-fat.yml
│ │ └── user.yml
│ └── templates
│ │ ├── solr-init-Debian-pre5.j2
│ │ ├── solr-init-RedHat-pre5.j2
│ │ └── solr-pre5.unit.j2
├── geerlingguy.varnish
│ ├── .github
│ │ ├── FUNDING.yml
│ │ └── stale.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── .yamllint
│ ├── LICENSE
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── molecule
│ │ └── default
│ │ │ ├── converge.yml
│ │ │ ├── molecule.yml
│ │ │ ├── playbook-41.yml
│ │ │ └── playbook-setup.yml
│ ├── tasks
│ │ ├── main.yml
│ │ ├── setup-Debian.yml
│ │ └── setup-RedHat.yml
│ ├── templates
│ │ ├── default.vcl.j2
│ │ ├── secret.j2
│ │ ├── varnish.j2
│ │ ├── varnish.params.j2
│ │ └── varnish.service.j2
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
├── thom8.php-upload-progress
│ ├── .travis.yml
│ ├── README.md
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ │ └── uploadprogress.ini.j2
│ ├── tests
│ │ ├── Dockerfile.centos-7
│ │ ├── Dockerfile.ubuntu-12.04
│ │ ├── Dockerfile.ubuntu-14.04
│ │ ├── inventory
│ │ ├── test-source.yml
│ │ └── uploadprogress-test.php
│ └── vars
│ │ ├── Debian.yml
│ │ └── RedHat.yml
└── weareinteractive.newrelic
│ ├── .ansible-lint
│ ├── .clog.toml
│ ├── .editorconfig
│ ├── .gitignore
│ ├── .travis.yml
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── Makefile
│ ├── README.md
│ ├── defaults
│ └── main.yml
│ ├── handlers
│ └── main.yml
│ ├── meta
│ ├── main.yml
│ └── readme.yml
│ ├── tasks
│ ├── config.yml
│ ├── install.yml
│ ├── install_debian.yml
│ ├── install_redhat.yml
│ ├── main.yml
│ └── service.yml
│ ├── templates
│ └── etc
│ │ └── newrelic
│ │ └── nrsysmond.cfg.j2
│ └── tests
│ └── main.yml
├── tasks
├── app-toggles.yml
├── apparmor.yml
├── backwards-compatibility.yml
├── config.yml
├── cron.yml
├── dashboard.yml
├── drush-aliases.yml
├── extras.yml
├── init-Debian.yml
├── init-RedHat.yml
├── php.yml
└── sshd.yml
├── templates
├── dashboard.html.j2
├── drupalvm-local.aliases.drushrc.php.j2
├── drupalvm-local.aliases.yml.j2
├── drupalvm.aliases.drushrc.php.j2
├── drupalvm.aliases.yml.j2
├── drupalvm.vcl.j2
├── drush.yml
├── nginx-vhost.conf.j2
└── server-info.php.j2
└── vars
├── Debian.yml
├── RedHat.yml
└── main.yml
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # OS-specific files.
2 | .DS_Store
3 |
4 | # Editor and language files.
5 | .idea/
6 | .project/
7 | .bundle/
8 |
9 | # Ansible files.
10 | *.retry
11 | .galaxy_install_info
12 |
13 | # Vagrant files.
14 | .vagrant/
15 | vagrant_ansible_inventory_default
16 |
17 | # Drupal VM specific files.
18 | drupal.composer.json
19 | local.config.yml
20 | Vagrantfile.local
21 | /config.yml
22 | /docker-compose.yml
23 | /drupal.make.yml
24 | /scripts/
25 | /drupal/
26 |
--------------------------------------------------------------------------------
/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 200
7 | level: warning
8 | truthy:
9 | allowed-values: ['true', 'false', 'yes', 'no']
10 | braces:
11 | min-spaces-inside: 1
12 | max-spaces-inside: 1
13 | min-spaces-inside-empty: -1
14 | max-spaces-inside-empty: -1
15 |
16 | ignore: |
17 | */stale.yml
18 | provisioning/roles/
19 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM geerlingguy/docker-debian10-ansible:latest
2 | LABEL maintainer="Jeff Geerling"
3 |
4 | # Copy provisioning directory, variable overrides, and scripts into container.
5 | COPY ./ /etc/ansible/drupal-vm
6 | COPY ./provisioning/docker/vars/docker-hub-overrides.yml /etc/ansible/drupal-vm/local.config.yml
7 | COPY ./provisioning/docker/bin/* /usr/local/bin
8 |
9 | # Provision Drupal VM inside Docker.
10 | RUN ansible-playbook /etc/ansible/drupal-vm/provisioning/playbook.yml \
11 | -e "ansible_python_interpreter=/usr/bin/python3" \
12 | # Enable FPM. See https://github.com/geerlingguy/drupal-vm/issues/1366.
13 | && systemctl enable php7.4-fpm.service
14 |
15 | EXPOSE 80 443 3306 8025
16 |
17 | CMD ["/lib/systemd/systemd"]
18 |
--------------------------------------------------------------------------------
/docs/configurations/databases-postgresql.md:
--------------------------------------------------------------------------------
1 | Since Drupal VM is built in a modular fashion, you can swap out the database engine and use [PostgreSQL](https://www.postgresql.org/) instead of MySQL (as long as the version of Drupal you're using supports it!).
2 |
3 | To switch from MySQL to PostgreSQL, switch the `drupal_db_backend` setting in your local `config.yml` to `pgsql`:
4 |
5 | ```yaml
6 | drupal_db_backend: pgsql
7 | ```
8 |
9 | For more PostgreSQL configuration options, see the [`geerlingguy.postgresql` Ansible role's README](https://github.com/geerlingguy/ansible-role-postgresql#readme).
10 |
--------------------------------------------------------------------------------
/docs/extras/adminer.md:
--------------------------------------------------------------------------------
1 | If you have `adminer` listed as one of the `installed_extras` inside `config.yml`, you can use Adminer's web-based interface to interact with databases. With Drupal VM running, visit [http://adminer.drupalvm.test/](http://adminer.drupalvm.test/), and log in with `drupal` as the username and the password you set in `config.yml` (`drupal_db_password`). Leave the "Server" field blank. The "Database" field is optional.
2 |
3 | For a list of available role variables, see the [`geerlingguy.adminer` Ansible role's README](https://github.com/geerlingguy/ansible-role-adminer#readme).
4 |
--------------------------------------------------------------------------------
/docs/extras/java.md:
--------------------------------------------------------------------------------
1 | Java will automatically be installed if you enabled any of the `installed_extras` that depend on it.
2 | If you have any other use case for installing it, just make sure `java` is in the list of `installed_extras` in your `config.yml`.
3 |
4 | For a list of available role variables, see the [`geerlingguy.java` Ansible role's README](https://github.com/geerlingguy/ansible-role-java#readme).
5 |
--------------------------------------------------------------------------------
/docs/extras/ruby.md:
--------------------------------------------------------------------------------
1 | Ruby is used for many different purposes, but with Drupal, it is most often used as part of a toolset for Front End development or certain CI tasks.
2 |
3 | Drupal VM includes built-in support for Ruby—all you need to do is make sure `ruby` is listed in the list of `installed_extras` inside `config.yml` before your provision Drupal VM.
4 |
5 | ## Installing gems
6 |
7 | To install ruby gems, you can add them to the list of `ruby_install_gems` in `config.yml`.
8 |
9 | ```yaml
10 | ruby_install_gems:
11 | - sass
12 | - compass
13 | ```
14 |
15 | For a list of available role variables, see the [`geerlingguy.ruby` Ansible role's README](https://github.com/geerlingguy/ansible-role-ruby#readme).
16 |
--------------------------------------------------------------------------------
/docs/extras/upload-progress.md:
--------------------------------------------------------------------------------
1 | To enable the Upload progress PHP extension make sure `upload-progress` is listed in the list of `installed_extras` inside `config.yml` before your provision Drupal VM.
2 |
3 | For a list of available role variables, see the [`thom8.php-upload-progress` Ansible role's README](https://github.com/thom8/ansible-role-php-upload-progress#readme).
4 |
--------------------------------------------------------------------------------
/docs/getting-started/installation-macos.md:
--------------------------------------------------------------------------------
1 | Please read through the [Quick Start Guide](https://github.com/geerlingguy/drupal-vm#quick-start-guide) to get started.
2 |
3 |
4 |
5 | _In this quick overview, Jeff Geerling will show you where you can learn more about Drupal VM, then show you a simple Drupal VM setup._
6 |
7 | ## NFS Timeout on Big Sur
8 |
9 | If you are using NFS shares on macOS Big Sur, and you have problems with the NFS mount going away, please set `vagrant_nfs_fix_enabled: true` in your `config.yml`.
10 |
--------------------------------------------------------------------------------
/docs/images/drupal-vm-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geerlingguy/drupal-vm/07289c8bf823604f8977bd4af0085a769f8db58f/docs/images/drupal-vm-logo.png
--------------------------------------------------------------------------------
/docs/other/acquia.md:
--------------------------------------------------------------------------------
1 | To emulate the default Acquia Cloud environment with Drupal VM you should create a `config.yml` and override a few defaults from `default.config.yml`. For an up-to-date example, use [BLT's `config.yml`](https://github.com/acquia/blt/blob/9.x/scripts/drupal-vm/config.yml). Some of the variables in the BLT example are customized for BLT and you should be looking specifically at `vagrant_box`, `php_version`, and `php_packages_extra`.
2 |
--------------------------------------------------------------------------------
/docs/other/drupal-6.md:
--------------------------------------------------------------------------------
1 | If you'd like to use the included configuration and Drush make file to install a Drupal 6 site using an older version of Drush (< 7.x), you may need to make some changes, namely:
2 |
3 | 1. Drush < 7.x does not support .yml makefiles; if using Drush 5.x or 6.x, you will need to create the make file in the INI-style format.
4 | 2. In your customized `config.yml` file, you will need to use the `default` installation profile instead of `standard` (for the `drupal_install_profile` variable).
5 |
--------------------------------------------------------------------------------
/example.drupal.make.yml:
--------------------------------------------------------------------------------
1 | ---
2 | api: 2
3 |
4 | # Basic Drush Make file for Drupal. Be sure to update the drupal_major_version
5 | # variable inside config.yml if you change the major version in this file.
6 |
7 | # Drupal core (major version, e.g. 6.x, 7.x, 8.x).
8 | core: "8.x"
9 |
10 | projects:
11 |
12 | # Core.
13 | drupal:
14 | version: "8.4.0"
15 | # Use this if you need a working git repository of Drupal core instead of
16 | # the latest stable.
17 | # type: "core"
18 | # download:
19 | # # Drupal core branch (e.g. "6.x", "7.x", "8.3.x", "8.5.x").
20 | # branch: "8.4.x"
21 | # working-copy: true
22 |
23 | # Other modules.
24 | devel: "1.x-dev"
25 |
--------------------------------------------------------------------------------
/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu1804}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/molecule/default/ubuntu1804-php74.config.yml:
--------------------------------------------------------------------------------
1 | ---
2 | php_version: "7.4"
3 | php_sendmail_path: "/usr/sbin/sendmail -t -i"
4 | installed_extras: []
5 |
--------------------------------------------------------------------------------
/molecule/default/ubuntu1804-postgresql.config.yml:
--------------------------------------------------------------------------------
1 | ---
2 | drupal_db_backend: pgsql
3 | php_sendmail_path: "/usr/sbin/sendmail -t -i"
4 | installed_extras: []
5 |
--------------------------------------------------------------------------------
/provisioning/ansible.cfg:
--------------------------------------------------------------------------------
1 | [defaults]
2 | roles_path = ./roles
3 |
4 | [ssh_connection]
5 | pipelining = True
6 | control_path = /tmp/ansible-ssh-%%h-%%p-%%r
7 |
--------------------------------------------------------------------------------
/provisioning/docker/parse-yaml.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # Parse a YAML file.
4 | #
5 | # Usage:
6 | # parse_yaml [file-path] [variable-to-retrieve]
7 | #
8 | # Requires ruby.
9 | # @see https://coderwall.com/p/bm_tpa/reading-yaml-files-in-bash-with-ruby
10 | # @todo Consider using PHP so user doesn't need to install Ruby.
11 |
12 | function parse_yaml {
13 | ruby -ryaml -e 'puts ARGV[1..-1].inject(YAML.load(File.read(ARGV[0]))) {|acc, key| acc[key] }' "$@"
14 | }
15 |
--------------------------------------------------------------------------------
/provisioning/docker/vars/docker-hub-overrides.yml:
--------------------------------------------------------------------------------
1 | ---
2 | hostname_configure: false
3 | firewall_enabled: false
4 | installed_extras:
5 | - adminer
6 | - drush
7 | - mailhog
8 | # - varnish
9 |
10 | # Don't build or install Drupal inside the container.
11 | drupal_build_makefile: false
12 | drupal_build_composer: false
13 | drupal_build_composer_project: false
14 | drupal_install_site: false
15 |
--------------------------------------------------------------------------------
/provisioning/roles/arknoll.selenium/.gitignore:
--------------------------------------------------------------------------------
1 | # OS generated files #
2 | ######################
3 | .DS_Store
4 | .DS_Store?
5 | ._*
6 | .Spotlight-V100
7 | .Trashes
8 | Icon?
9 | ehthumbs.db
10 | Thumbs.db
11 |
12 | # IDE files #
13 | #################
14 | /.settings
15 | /.buildpath
16 | /.project
17 | /nbproject
18 | *.komodoproject
19 | *.kpf
20 | /.idea
21 |
22 | # Other files #
23 | ###############
24 | !empty
25 |
--------------------------------------------------------------------------------
/provisioning/roles/arknoll.selenium/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | services: docker
3 |
4 | env:
5 | - distro: centos7
6 | - distro: centos6
7 | - distro: ubuntu1604
8 | - distro: debian8
9 | - distro: ubuntu1404
10 | - distro: ubuntu1204
11 |
12 | script:
13 | # Download test shim.
14 | - wget -O ${PWD}/tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/
15 | - chmod +x ${PWD}/tests/test.sh
16 |
17 | # Run tests.
18 | - ${PWD}/tests/test.sh
19 |
20 | notifications:
21 | email: false
22 | webhooks: https://galaxy.ansible.com/api/v1/notifications/
23 |
--------------------------------------------------------------------------------
/provisioning/roles/arknoll.selenium/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) Alex Knoll
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
--------------------------------------------------------------------------------
/provisioning/roles/arknoll.selenium/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # defaults file for selenium
3 | selenium_install_dir: /opt
4 | selenium_version: "2.53.0"
5 | selenium_install_firefox: no
6 | selenium_install_chrome: yes
7 | selenium_display_id: "1"
8 | selenium_port: 4444
9 | selenium_xvfb_args: "--server-args='-screen 0, 1920x1080x24'"
10 |
--------------------------------------------------------------------------------
/provisioning/roles/arknoll.selenium/handlers/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # handlers file for selenium
3 | - name: restart selenium
4 | service: name=selenium state=restarted
5 |
--------------------------------------------------------------------------------
/provisioning/roles/arknoll.selenium/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # meta file for selenium
3 | galaxy_info:
4 | author: Alex Knoll
5 | description: Set up selenium and Firefox for running selenium tests.
6 | license: Apache V2
7 | min_ansible_version: 2.0
8 | platforms:
9 | - name: EL
10 | versions:
11 | - 6
12 | - 7
13 | - name: Ubuntu
14 | versions:
15 | - all
16 | - name: Debian
17 | versions:
18 | - all
19 | categories:
20 | - web
21 | dependencies: []
22 |
--------------------------------------------------------------------------------
/provisioning/roles/arknoll.selenium/templates/selenium-unit.j2:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=selenium test framework
3 | After=syslog.target network.target
4 |
5 | [Service]
6 | ExecStart=/usr/bin/xvfb-run {{ selenium_xvfb_args }} /usr/bin/java -client -jar {{ selenium_install_dir }}/selenium/selenium-server-standalone-{{ selenium_version }}.jar
7 | Restart=on-failure
8 | RestartSec=20s
9 |
10 | [Install]
11 | WantedBy=multi-user.target
12 |
--------------------------------------------------------------------------------
/provisioning/roles/arknoll.selenium/tests/README.md:
--------------------------------------------------------------------------------
1 | # Ansible Role tests
2 |
3 | To run the test playbook(s) in this directory:
4 |
5 | 1. Install and start Docker.
6 | 1. Download the test shim (see .travis.yml file for the URL) into `tests/test.sh`:
7 | - `wget -O tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/`
8 | 1. Make the test shim executable: `chmod +x tests/test.sh`.
9 | 1. Run (from the role root directory) `distro=[distro] playbook=[playbook] ./tests/test.sh`
10 |
11 | If you don't want the container to be automatically deleted after the test playbook is run, add the following environment variables: `cleanup=false container_id=$(date +%s)`
12 |
--------------------------------------------------------------------------------
/provisioning/roles/arknoll.selenium/tests/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - src: geerlingguy.java
3 |
--------------------------------------------------------------------------------
/provisioning/roles/arknoll.selenium/tests/test.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Test file for selenium
3 | - hosts: all
4 |
5 | pre_tasks:
6 | - name: Update apt cache.
7 | apt: update_cache=yes cache_valid_time=3600
8 | when: ansible_os_family == 'Debian'
9 |
10 | - name: Don't install Chrome on old OSes.
11 | set_fact:
12 | selenium_install_firefox: yes
13 | selenium_install_chrome: no
14 | when: >
15 | (ansible_distribution == 'Ubuntu' and ansible_distribution_version == '12.04')
16 | or (ansible_os_family == 'RedHat' and ansible_distribution_version.split('.')[0] == '6')
17 |
18 | roles:
19 | - geerlingguy.java
20 | - role_under_test
21 |
--------------------------------------------------------------------------------
/provisioning/roles/arknoll.selenium/vars/Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | selenium_xvfb_package: xvfb
3 |
--------------------------------------------------------------------------------
/provisioning/roles/arknoll.selenium/vars/RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | selenium_xvfb_package: xorg-x11-server-Xvfb
3 |
--------------------------------------------------------------------------------
/provisioning/roles/drupalvm.hostname/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | hostname_fqdn: "{{ inventory_hostname }}"
3 | hostname_short: "{{ hostname_fqdn|regex_replace('^([^.]+).*$', '\\1') }}"
4 |
5 | hostname_unsafe_writes: "{{ (ansible_virtualization_type == 'docker')|ternary('yes', 'no')|bool }}"
6 |
--------------------------------------------------------------------------------
/provisioning/roles/drupalvm.hostname/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | galaxy_info:
3 | author: Jeff Geerling
4 | description: A role to set the hostname and FQDN on Drupal VM.
5 | company: Midwestern Mac, LLC
6 | issue_tracker_url: https://github.com/geerlingguy/drupal-vm/issues
7 | license: MIT
8 | min_ansible_version: 2.2
9 |
10 | platforms:
11 | - name: EL
12 | versions:
13 | - all
14 | - name: Debian
15 | versions:
16 | - all
17 | - name: Ubuntu
18 | versions:
19 | - all
20 |
21 | galaxy_tags:
22 | - drupal
23 | - vm
24 | - hostname
25 |
--------------------------------------------------------------------------------
/provisioning/roles/drupalvm.vagrant-nfs-fix/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | vagrant_nfs_fix_keepalive_file: "/vagrant/.vagrant-nfs-fix-keepalive.tmp"
3 |
--------------------------------------------------------------------------------
/provisioning/roles/drupalvm.vagrant-nfs-fix/tasks/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Copy Vagrant NFS fix script into place.
3 | template:
4 | src: vagrant-nfs-fix.j2
5 | dest: /usr/sbin/vagrant-nfs-fix
6 | owner: root
7 | group: root
8 | mode: 0755
9 |
10 | - name: Copy Vagrant NFS fix systemd unit file into place.
11 | template:
12 | src: vagrant-nfs-fix.unit.j2
13 | dest: /etc/systemd/system/vagrant-nfs-fix.service
14 | owner: root
15 | group: root
16 | mode: 0644
17 |
18 | - name: Configure the NFS fix service.
19 | service:
20 | name: vagrant-nfs-fix
21 | state: started
22 | enabled: true
23 |
--------------------------------------------------------------------------------
/provisioning/roles/drupalvm.vagrant-nfs-fix/templates/vagrant-nfs-fix.j2:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | while true; do
4 | touch {{ vagrant_nfs_fix_keepalive_file }}
5 | sleep 1
6 | rm {{ vagrant_nfs_fix_keepalive_file }}
7 | sleep 30
8 | done
9 |
--------------------------------------------------------------------------------
/provisioning/roles/drupalvm.vagrant-nfs-fix/templates/vagrant-nfs-fix.unit.j2:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Workaround for vagrant NFS inactivity bug
3 | StartLimitIntervalSec=0
4 |
5 | [Service]
6 | Type=simple
7 | Restart=always
8 | RestartSec=1
9 | ExecStart=/usr/sbin/vagrant-nfs-fix
10 |
11 | [Install]
12 | WantedBy=multi-user.target
13 |
--------------------------------------------------------------------------------
/provisioning/roles/drupalvm.www/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | drupalvm_webserver: apache
3 | vagrant_user: vagrant
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.adminer/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - 'yaml'
3 | - 'role-name'
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.adminer/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.adminer/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 | .cache
5 |
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.adminer/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 120
7 | level: warning
8 |
9 | ignore: |
10 | .github/stale.yml
11 | .travis.yml
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.adminer/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | adminer_download_url: https://www.adminer.org/latest.php
3 | adminer_install_dir: /opt/adminer
4 | adminer_install_filename: adminer.php
5 | adminer_symlink_dirs: []
6 | adminer_add_apache_config: false
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.adminer/molecule/default/converge.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | adminer_add_apache_config: true
8 |
9 | pre_tasks:
10 | - name: Update apt cache.
11 | apt: update_cache=yes cache_valid_time=600
12 | when: ansible_os_family == 'Debian'
13 | changed_when: false
14 |
15 | roles:
16 | - role: geerlingguy.apache
17 | - role: geerlingguy.adminer
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.adminer/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.adminer/molecule/default/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - src: geerlingguy.apache
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.adminer/molecule/default/standalone.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | adminer_install_dir: /opt/adminer
8 | adminer_add_apache_config: false
9 |
10 | pre_tasks:
11 | - name: Update apt cache.
12 | apt: update_cache=yes cache_valid_time=600
13 | when: ansible_os_family == 'Debian'
14 | changed_when: false
15 |
16 | roles:
17 | - role: geerlingguy.adminer
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.adminer/templates/adminer.conf.j2:
--------------------------------------------------------------------------------
1 | Alias /adminer "{{ adminer_install_dir }}/adminer.php"
2 |
3 | {% if apache_vhosts_version == "2.2" %}
4 | Order allow,deny
5 | Allow from all
6 | {% else %}
7 | Require all granted
8 | {% endif %}
9 |
10 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache-php-fpm/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies:
3 | - geerlingguy.apache
4 |
5 | galaxy_info:
6 | author: geerlingguy
7 | description: Apache 2.4+ PHP-FPM support for Linux.
8 | company: "Midwestern Mac, LLC"
9 | license: "license (BSD, MIT)"
10 | min_ansible_version: 2.0
11 | platforms:
12 | - name: EL
13 | versions:
14 | - 6
15 | - 7
16 | - name: Debian
17 | versions:
18 | - wheezy
19 | - jessie
20 | - stretch
21 | - name: Ubuntu
22 | versions:
23 | - precise
24 | - trusty
25 | - xenial
26 | galaxy_tags:
27 | - web
28 | - apache
29 | - php
30 | - cgi
31 | - php-fpm
32 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache-php-fpm/tasks/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # For RedHat/CentOS, see notes in README.
3 | - name: Enable mod_proxy_fcgi.
4 | file:
5 | src: "{{ apache_server_root }}/mods-available/{{ item }}"
6 | dest: "{{ apache_server_root }}/mods-enabled/{{ item }}"
7 | state: link
8 | with_items:
9 | - proxy.load
10 | - proxy_fcgi.load
11 | notify: restart apache
12 | when: ansible_os_family == 'Debian'
13 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - 'yaml'
3 | - 'role-name'
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 | .cache
5 |
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 120
7 | level: warning
8 |
9 | ignore: |
10 | .github/stale.yml
11 | .travis.yml
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/handlers/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: restart apache
3 | service:
4 | name: "{{ apache_service }}"
5 | state: "{{ apache_restart_state }}"
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/molecule/default/converge.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | apache_listen_port_ssl: 443
8 | apache_create_vhosts: true
9 | apache_vhosts_filename: "vhosts.conf"
10 | apache_vhosts:
11 | - servername: "example.com"
12 | documentroot: "/var/www/vhosts/example_com"
13 |
14 | pre_tasks:
15 | - name: Update apt cache.
16 | apt: update_cache=yes cache_valid_time=600
17 | when: ansible_os_family == 'Debian'
18 | changed_when: false
19 |
20 | roles:
21 | - role: geerlingguy.apache
22 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/tasks/configure-Solaris.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Configure Apache.
3 | lineinfile:
4 | dest: "{{ apache_server_root }}/{{ apache_daemon }}.conf"
5 | regexp: "{{ item.regexp }}"
6 | line: "{{ item.line }}"
7 | state: present
8 | mode: 0644
9 | with_items: "{{ apache_ports_configuration_items }}"
10 | notify: restart apache
11 |
12 | - name: Add apache vhosts configuration.
13 | template:
14 | src: "{{ apache_vhosts_template }}"
15 | dest: "{{ apache_conf_path }}/{{ apache_vhosts_filename }}"
16 | owner: root
17 | group: root
18 | mode: 0644
19 | notify: restart apache
20 | when: apache_create_vhosts | bool
21 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/tasks/setup-Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Update apt cache.
3 | apt: update_cache=yes cache_valid_time=3600
4 |
5 | - name: Ensure Apache is installed on Debian.
6 | apt: "name={{ apache_packages }} state={{ apache_packages_state }}"
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/tasks/setup-RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure Apache is installed on RHEL.
3 | package:
4 | name: "{{ apache_packages }}"
5 | state: "{{ apache_packages_state }}"
6 | enablerepo: "{{ apache_enablerepo | default(omit, true) }}"
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/tasks/setup-Solaris.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure Apache is installed on Solaris.
3 | pkg5:
4 | name: "{{ apache_packages }}"
5 | state: "{{ apache_packages_state }}"
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/tasks/setup-Suse.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure Apache is installed on Suse.
3 | zypper:
4 | name: "{{ apache_packages }}"
5 | state: "{{ apache_packages_state }}"
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/vars/AmazonLinux.yml:
--------------------------------------------------------------------------------
1 | ---
2 | apache_service: httpd
3 | apache_daemon: httpd
4 | apache_daemon_path: /usr/sbin/
5 | apache_server_root: /etc/httpd
6 | apache_conf_path: /etc/httpd/conf.d
7 |
8 | apache_vhosts_version: "2.4"
9 |
10 | __apache_packages:
11 | - httpd24
12 | - httpd24-devel
13 | - mod24_ssl
14 | - openssh
15 |
16 | apache_ports_configuration_items:
17 | - regexp: "^Listen "
18 | line: "Listen {{ apache_listen_port }}"
19 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/vars/Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | apache_service: apache2
3 | apache_daemon: apache2
4 | apache_daemon_path: /usr/sbin/
5 | apache_server_root: /etc/apache2
6 | apache_conf_path: /etc/apache2
7 |
8 | __apache_packages:
9 | - apache2
10 | - apache2-utils
11 |
12 | apache_ports_configuration_items:
13 | - regexp: "^Listen "
14 | line: "Listen {{ apache_listen_port }}"
15 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/vars/RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | apache_service: httpd
3 | apache_daemon: httpd
4 | apache_daemon_path: /usr/sbin/
5 | apache_server_root: /etc/httpd
6 | apache_conf_path: /etc/httpd/conf.d
7 |
8 | apache_vhosts_version: "2.2"
9 |
10 | __apache_packages:
11 | - httpd
12 | - httpd-devel
13 | - mod_ssl
14 | - openssh
15 |
16 | apache_ports_configuration_items:
17 | - regexp: "^Listen "
18 | line: "Listen {{ apache_listen_port }}"
19 | - regexp: "^#?NameVirtualHost "
20 | line: "NameVirtualHost {{ apache_listen_ip }}:{{ apache_listen_port }}"
21 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/vars/Solaris.yml:
--------------------------------------------------------------------------------
1 | ---
2 | apache_service: apache24
3 | apache_daemon: httpd
4 | apache_daemon_path: /usr/apache2/2.4/bin/
5 | apache_server_root: /etc/apache2/2.4/
6 | apache_conf_path: /etc/apache2/2.4/conf.d
7 |
8 | apache_vhosts_version: "2.2"
9 |
10 | __apache_packages:
11 | - web/server/apache-24
12 | - web/server/apache-24/module/apache-ssl
13 | - web/server/apache-24/module/apache-security
14 |
15 | apache_ports_configuration_items:
16 | - regexp: "^Listen "
17 | line: "Listen {{ apache_listen_port }}"
18 | - regexp: "^#?NameVirtualHost "
19 | line: "NameVirtualHost {{ apache_listen_ip }}:{{ apache_listen_port }}"
20 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/vars/Suse.yml:
--------------------------------------------------------------------------------
1 | ---
2 | apache_service: apache2
3 | apache_daemon: httpd2
4 | apache_daemon_path: /usr/sbin/
5 | apache_server_root: /etc/apache2
6 | apache_conf_path: /etc/apache2/conf.d
7 |
8 | apache_vhosts_version: "2.2"
9 |
10 | __apache_packages:
11 | - apache2
12 | - openssh
13 |
14 | apache_ports_configuration_items:
15 | - regexp: "^Listen "
16 | line: "Listen {{ apache_listen_port }}"
17 | - regexp: "^#?NameVirtualHost "
18 | line: "NameVirtualHost {{ apache_listen_ip }}:{{ apache_listen_port }}"
19 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/vars/apache-22.yml:
--------------------------------------------------------------------------------
1 | ---
2 | apache_vhosts_version: "2.2"
3 | apache_default_vhost_filename: 000-default
4 | apache_ports_configuration_items:
5 | - {
6 | regexp: "^Listen ",
7 | line: "Listen {{ apache_listen_port }}"
8 | }
9 | - {
10 | regexp: "^#?NameVirtualHost ",
11 | line: "NameVirtualHost {{ apache_listen_ip }}:{{ apache_listen_port }}"
12 | }
13 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.apache/vars/apache-24.yml:
--------------------------------------------------------------------------------
1 | ---
2 | apache_vhosts_version: "2.4"
3 | apache_default_vhost_filename: 000-default.conf
4 | apache_ports_configuration_items:
5 | - {
6 | regexp: "^Listen ",
7 | line: "Listen {{ apache_listen_port }}"
8 | }
9 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.blackfire/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - '503'
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.blackfire/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.blackfire/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.blackfire/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | language: python
3 | services: docker
4 |
5 | env:
6 | global:
7 | - ROLE_NAME: blackfire
8 | matrix:
9 | - MOLECULE_DISTRO: centos7
10 | - MOLECULE_DISTRO: ubuntu1804
11 | - MOLECULE_DISTRO: debian9
12 |
13 | install:
14 | # Install test dependencies.
15 | - pip install molecule yamllint ansible-lint docker
16 |
17 | before_script:
18 | # Use actual Ansible Galaxy role name for the project directory.
19 | - cd ../
20 | - mv ansible-role-$ROLE_NAME geerlingguy.$ROLE_NAME
21 | - cd geerlingguy.$ROLE_NAME
22 |
23 | script:
24 | # Run tests.
25 | - molecule test
26 |
27 | notifications:
28 | webhooks: https://galaxy.ansible.com/api/v1/notifications/
29 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.blackfire/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 | rules:
4 | line-length:
5 | max: 120
6 | level: warning
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.blackfire/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | blackfire_packages:
3 | - blackfire-agent
4 | - blackfire-php
5 |
6 | blackfire_gpg_key_url: https://packages.blackfire.io/gpg.key
7 | blackfire_repo_url: http://packages.blackfire.io/fedora/blackfire.repo
8 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.blackfire/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies:
3 | - geerlingguy.php
4 |
5 | galaxy_info:
6 | author: geerlingguy
7 | description: Blackfire installation for Linux
8 | company: "Midwestern Mac, LLC"
9 | license: "license (BSD, MIT)"
10 | min_ansible_version: 2.4
11 | platforms:
12 | - name: EL
13 | versions:
14 | - 6
15 | - 7
16 | - name: Debian
17 | versions:
18 | - all
19 | - name: Ubuntu
20 | versions:
21 | - precise
22 | - raring
23 | - saucy
24 | - trusty
25 | - xenial
26 | - bionic
27 | galaxy_tags:
28 | - development
29 | - web
30 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.blackfire/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | lint: |
7 | yamllint .
8 | ansible-lint
9 | platforms:
10 | - name: instance
11 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
12 | command: ${MOLECULE_DOCKER_COMMAND:-""}
13 | volumes:
14 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
15 | privileged: true
16 | pre_build_image: true
17 | provisioner:
18 | name: ansible
19 | playbooks:
20 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
21 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.blackfire/molecule/default/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - src: geerlingguy.php
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.blackfire/tasks/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - include_tasks: setup-RedHat.yml
3 | when: ansible_os_family == 'RedHat'
4 |
5 | - include_tasks: setup-Debian.yml
6 | when: ansible_os_family == 'Debian'
7 |
8 | - name: Ensure Blackfire packages are installed.
9 | package:
10 | name: "{{ blackfire_packages }}"
11 | state: present
12 | notify:
13 | - restart webserver
14 | - restart php-fpm
15 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.blackfire/tasks/setup-Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure dirmngr is installed (gnupg dependency).
3 | apt:
4 | name: dirmngr
5 | state: present
6 |
7 | - name: Add packagecloud apt key.
8 | apt_key:
9 | url: "{{ blackfire_gpg_key_url }}"
10 | state: present
11 |
12 | - name: Add packagecloud repository.
13 | apt_repository:
14 | repo: "{{ item }}"
15 | state: present
16 | register: packagecloud_repos
17 | with_items:
18 | - "deb http://packages.blackfire.io/debian any main"
19 |
20 | - name: Update apt caches after repo is added.
21 | apt: update_cache=yes
22 | when: packagecloud_repos.changed
23 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.blackfire/tasks/setup-RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Check if Blackfire repository file exists.
3 | stat: path=/etc/yum.repos.d/blackfire.repo
4 | register: repo_file_stat
5 |
6 | - name: Add Blackfire repository.
7 | get_url:
8 | url: "{{ blackfire_repo_url }}"
9 | dest: /etc/yum.repos.d/blackfire.repo
10 | mode: 0644
11 | when: not repo_file_stat.stat.exists
12 |
13 | - name: Disable gpg_repocheck for non-bleeding-edge CentOS.
14 | lineinfile:
15 | dest: /etc/yum.repos.d/blackfire.repo
16 | regexp: "^repo_gpgcheck="
17 | line: "repo_gpgcheck=0"
18 | state: present
19 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.composer/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - '106'
3 | - '204'
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.composer/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.composer/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.composer/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 140
7 | level: warning
8 |
9 | ignore: |
10 | .github/stale.yml
11 | .travis.ci
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.composer/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.composer/molecule/default/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - src: geerlingguy.repo-remi
3 | - src: geerlingguy.repo-dotdeb
4 | - src: geerlingguy.git
5 | - src: geerlingguy.php
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.composer/tasks/project-bin.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Add composer_project_path bin directory to global $PATH.
3 | template:
4 | src: composer-project.sh.j2
5 | dest: /etc/profile.d/composer-project.sh
6 | mode: 0644
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.composer/templates/auth.json.j2:
--------------------------------------------------------------------------------
1 | {
2 | "github-oauth": {
3 | "github.com": "{{ composer_github_oauth_token }}"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.composer/templates/composer-project.sh.j2:
--------------------------------------------------------------------------------
1 | export PATH={{ composer_project_path }}:$PATH
2 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.composer/templates/composer.sh.j2:
--------------------------------------------------------------------------------
1 | export PATH=$PATH:{{ composer_home_path }}/vendor/bin
2 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.daemonize/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - '106'
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.daemonize/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.daemonize/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.daemonize/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 120
7 | level: warning
8 |
9 | ignore: |
10 | .github/stale.yml
11 | .travis.yml
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.daemonize/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | workspace: /root
3 |
4 | daemonize_version: 1.7.7
5 | daemonize_install_path: "/usr"
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.daemonize/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies: []
3 |
4 | galaxy_info:
5 | role_name: daemonize
6 | author: geerlingguy
7 | description: "Daemonize for Unix-like operating systems"
8 | company: "Midwestern Mac, LLC"
9 | license: "license (BSD, MIT)"
10 | min_ansible_version: 2.0
11 | platforms:
12 | - name: EL
13 | versions:
14 | - all
15 | - name: Ubuntu
16 | versions:
17 | - all
18 | - name: Debian
19 | versions:
20 | - all
21 | - name: GenericUNIX
22 | versions:
23 | - all
24 | - any
25 | galaxy_tags:
26 | - development
27 | - web
28 | - system
29 | - mail
30 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.daemonize/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal-console/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | tests/test.sh
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal-console/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | drupal_console_path: /usr/local/bin/drupal
3 | drupal_console_keep_updated: false
4 | drupal_console_config: ~/.console
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal-console/tests/README.md:
--------------------------------------------------------------------------------
1 | # Ansible Role tests
2 |
3 | To run the test playbook(s) in this directory:
4 |
5 | 1. Install and start Docker.
6 | 1. Download the test shim (see .travis.yml file for the URL) into `tests/test.sh`:
7 | - `wget -O tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/`
8 | 1. Make the test shim executable: `chmod +x tests/test.sh`.
9 | 1. Run (from the role root directory) `distro=[distro] playbook=[playbook] ./tests/test.sh`
10 |
11 | If you don't want the container to be automatically deleted after the test playbook is run, add the following environment variables: `cleanup=false container_id=$(date +%s)`
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal-console/tests/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - src: geerlingguy.php
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal-console/tests/test-self-update.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - hosts: all
3 |
4 | vars:
5 | php_enable_webserver: false
6 | drupal_console_keep_updated: true
7 |
8 | pre_tasks:
9 | - name: Update apt cache.
10 | apt: update_cache=yes cache_valid_time=600
11 | when: ansible_os_family == 'Debian'
12 | changed_when: false
13 |
14 | roles:
15 | - geerlingguy.php
16 | - role_under_test
17 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal-console/tests/test.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - hosts: all
3 |
4 | vars:
5 | php_enable_webserver: false
6 |
7 | pre_tasks:
8 | - name: Update apt cache.
9 | apt: update_cache=yes cache_valid_time=600
10 | when: ansible_os_family == 'Debian'
11 | changed_when: false
12 |
13 | - name: Add repository for PHP 7.0 (Ubuntu).
14 | apt_repository: repo='ppa:ondrej/php'
15 | when: ansible_distribution == "Ubuntu" and ansible_distribution_version != "16.04"
16 |
17 | roles:
18 | - geerlingguy.php
19 | - role_under_test
20 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - 'yaml'
3 | - 'no-handler'
4 | - 'role-name'
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 | .cache
5 |
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 160
7 | level: warning
8 |
9 | ignore: |
10 | .github/stale.yml
11 | .travis.yml
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal/handlers/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: clear opcache
3 | shell: >
4 | cd {{ drupal_core_path }} &&
5 | {{ drush_path }} eval "if (function_exists('apc_clear_cache')) { apc_clear_cache(); }; if (function_exists('opcache_reset')) { opcache_reset(); }"
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies: []
3 |
4 | galaxy_info:
5 | role_name: drupal
6 | author: geerlingguy
7 | description: Deploy or install Drupal on your servers.
8 | company: "Midwestern Mac, LLC"
9 | license: "license (BSD, MIT)"
10 | min_ansible_version: 2.4
11 | platforms:
12 | - name: EL
13 | versions:
14 | - all
15 | - name: Ubuntu
16 | versions:
17 | - all
18 | - name: Debian
19 | versions:
20 | - all
21 | galaxy_tags:
22 | - development
23 | - web
24 | - drupal
25 | - cms
26 | - php
27 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal/molecule/default/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - src: geerlingguy.repo-remi
3 | - src: geerlingguy.repo-dotdeb
4 | - src: geerlingguy.apache
5 | - src: geerlingguy.apache-php-fpm
6 | - src: geerlingguy.nginx
7 | - src: geerlingguy.mysql
8 | - src: geerlingguy.postgresql
9 | - src: geerlingguy.php-versions
10 | - src: geerlingguy.php
11 | - src: geerlingguy.php-mysql
12 | - src: geerlingguy.php-pgsql
13 | - src: geerlingguy.git
14 | - src: geerlingguy.composer
15 | - src: geerlingguy.drush
16 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal/molecule/default/test-setup.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Update apt cache.
3 | apt: update_cache=yes cache_valid_time=600
4 | when: ansible_os_family == 'Debian'
5 |
6 | - name: Install dependencies.
7 | package:
8 | name:
9 | - curl
10 | - unzip
11 | - sendmail
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drupal/tasks/update.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Run database updates.
3 | command: "{{ drush_path }} updatedb -y"
4 | args:
5 | chdir: "{{ drupal_core_path }}"
6 | register: drush_database_updates
7 | changed_when: "'No database updates required.' not in drush_database_updates.stdout"
8 |
9 | # TODO: Import configuration if configured?
10 | # TODO: Other commands if configured?
11 |
12 | - name: Rebuild Drupal caches.
13 | command: "{{ drush_path }} cache-rebuild --quiet"
14 | args:
15 | chdir: "{{ drupal_core_path }}"
16 | tags: ['skip_ansible_lint']
17 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drush/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - '503'
3 | - '106'
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drush/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drush/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drush/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 120
7 | level: warning
8 |
9 | ignore: |
10 | .github/stale.yml
11 | .travis.yml
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drush/molecule/default/converge.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | php_enable_webserver: false
8 | php_opcache_enable: "0"
9 |
10 | pre_tasks:
11 | - name: Update apt cache.
12 | apt: update_cache=true cache_valid_time=600
13 | when: ansible_os_family == 'Debian'
14 |
15 | - name: Ensure unzip is installed.
16 | package: name=unzip state=present
17 |
18 | roles:
19 | - role: geerlingguy.repo-remi
20 | when: ansible_os_family == 'RedHat'
21 | - role: geerlingguy.php-versions
22 | - role: geerlingguy.php
23 | - role: geerlingguy.composer
24 | - role: geerlingguy.drush
25 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drush/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drush/molecule/default/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - src: geerlingguy.repo-remi
3 | - src: geerlingguy.php-versions
4 | - src: geerlingguy.php
5 | - src: geerlingguy.composer
6 | - src: geerlingguy.git
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.drush/tasks/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - include_tasks: install-drush-launcher.yml
3 | when: drush_launcher_install
4 |
5 | - include_tasks: install-drush-composer.yml
6 | when: drush_composer_global_install
7 |
8 | - include_tasks: install-source.yml
9 | when: drush_install_from_source
10 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.elasticsearch/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - 'yaml'
3 | - 'role-name'
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.elasticsearch/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.elasticsearch/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 | .cache
5 |
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.elasticsearch/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 120
7 | level: warning
8 |
9 | ignore: |
10 | .github/stale.yml
11 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.elasticsearch/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | elasticsearch_version: '7.x'
3 | elasticsearch_package: elasticsearch
4 | elasticsearch_package_state: present
5 |
6 | elasticsearch_service_state: started
7 | elasticsearch_service_enabled: true
8 |
9 | elasticsearch_network_host: localhost
10 | elasticsearch_http_port: 9200
11 |
12 | elasticsearch_heap_size_min: 1g
13 | elasticsearch_heap_size_max: 2g
14 |
15 | elasticsearch_extra_options: ''
16 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.elasticsearch/handlers/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: restart elasticsearch
3 | service: name=elasticsearch state=restarted
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.elasticsearch/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies: []
3 |
4 | galaxy_info:
5 | role_name: elasticsearch
6 | author: geerlingguy
7 | description: Elasticsearch for Linux.
8 | company: "Midwestern Mac, LLC"
9 | license: "license (BSD, MIT)"
10 | min_ansible_version: 2.4
11 | platforms:
12 | - name: EL
13 | versions:
14 | - all
15 | - name: Debian
16 | versions:
17 | - all
18 | - name: Ubuntu
19 | versions:
20 | - all
21 | galaxy_tags:
22 | - web
23 | - system
24 | - monitoring
25 | - logging
26 | - lucene
27 | - elk
28 | - efk
29 | - elasticsearch
30 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.elasticsearch/molecule/default/converge.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | pre_tasks:
7 | - name: Update apt cache.
8 | apt: update_cache=true cache_valid_time=600
9 | when: ansible_os_family == 'Debian'
10 | changed_when: false
11 |
12 | roles:
13 | - role: geerlingguy.java
14 | - role: geerlingguy.elasticsearch
15 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.elasticsearch/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.elasticsearch/molecule/default/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - src: geerlingguy.java
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.elasticsearch/tasks/setup-Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Add required dependencies.
3 | apt:
4 | name:
5 | - apt-transport-https
6 | - gnupg2
7 | state: present
8 |
9 | - name: Add Elasticsearch apt key.
10 | apt_key:
11 | url: https://artifacts.elastic.co/GPG-KEY-elasticsearch
12 | state: present
13 |
14 | - name: Add Elasticsearch repository.
15 | apt_repository:
16 | repo: 'deb https://artifacts.elastic.co/packages/{{ elasticsearch_version }}/apt stable main'
17 | state: present
18 | update_cache: true
19 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.elasticsearch/tasks/setup-RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Add Elasticsearch GPG key.
3 | rpm_key:
4 | key: https://artifacts.elastic.co/GPG-KEY-elasticsearch
5 | state: present
6 |
7 | - name: Add Elasticsearch repository.
8 | template:
9 | src: elasticsearch.repo.j2
10 | dest: /etc/yum.repos.d/elasticsearch.repo
11 | mode: 0644
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.elasticsearch/templates/elasticsearch.repo.j2:
--------------------------------------------------------------------------------
1 | [elasticsearch-{{ elasticsearch_version }}]
2 | name=Elasticsearch repository for {{ elasticsearch_version }} packages
3 | baseurl=https://artifacts.elastic.co/packages/{{ elasticsearch_version }}/yum
4 | gpgcheck=1
5 | gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
6 | enabled=1
7 | autorefresh=1
8 | type=rpm-md
9 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.firewall/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.firewall/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.firewall/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 | rules:
4 | line-length:
5 | max: 120
6 | level: warning
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.firewall/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | firewall_state: started
3 | firewall_enabled_at_boot: true
4 |
5 | firewall_flush_rules_and_chains: true
6 |
7 | firewall_allowed_tcp_ports:
8 | - "22"
9 | - "25"
10 | - "80"
11 | - "443"
12 | firewall_allowed_udp_ports: []
13 | firewall_forwarded_tcp_ports: []
14 | firewall_forwarded_udp_ports: []
15 | firewall_additional_rules: []
16 | firewall_enable_ipv6: true
17 | firewall_ip6_additional_rules: []
18 | firewall_log_dropped_packets: true
19 |
20 | # Set to true to ensure other firewall management software is disabled.
21 | firewall_disable_firewalld: false
22 | firewall_disable_ufw: false
23 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.firewall/handlers/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: restart firewall
3 | service: name=firewall state=restarted
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.firewall/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies: []
3 |
4 | galaxy_info:
5 | author: geerlingguy
6 | description: Simple iptables firewall for most Unix-like systems.
7 | company: "Midwestern Mac, LLC"
8 | license: "license (BSD, MIT)"
9 | min_ansible_version: 2.4
10 | platforms:
11 | - name: EL
12 | versions:
13 | - all
14 | - name: Debian
15 | versions:
16 | - all
17 | - name: Ubuntu
18 | versions:
19 | - all
20 | galaxy_tags:
21 | - networking
22 | - system
23 | - security
24 | - firewall
25 | - iptables
26 | - tcp
27 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.firewall/molecule/default/converge.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | # Added to prevent test failures in CI.
8 | firewall_enable_ipv6: false
9 |
10 | # Added for a test.
11 | firewall_allowed_tcp_ports:
12 | - "9123"
13 |
14 | pre_tasks:
15 | - name: Update apt cache.
16 | apt: update_cache=true cache_valid_time=1200
17 | when: ansible_os_family == 'Debian'
18 | changed_when: false
19 |
20 | roles:
21 | - role: geerlingguy.firewall
22 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.firewall/templates/firewall.unit.j2:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Firewall
3 | After=syslog.target network.target
4 |
5 | [Service]
6 | Type=oneshot
7 | ExecStart=/etc/firewall.bash
8 | ExecStop=/sbin/iptables -F
9 | RemainAfterExit=yes
10 |
11 | [Install]
12 | WantedBy=multi-user.target
13 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.git/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - '204'
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.git/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.git/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.git/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 | rules:
4 | line-length:
5 | max: 160
6 | level: warning
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.git/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies: []
3 |
4 | galaxy_info:
5 | author: geerlingguy
6 | description: Git version control software
7 | company: "Midwestern Mac, LLC"
8 | license: "license (BSD, MIT)"
9 | min_ansible_version: 2.5
10 | platforms:
11 | - name: EL
12 | versions:
13 | - all
14 | - name: Fedora
15 | versions:
16 | - all
17 | - name: Debian
18 | versions:
19 | - all
20 | - name: Ubuntu
21 | versions:
22 | - all
23 | galaxy_tags:
24 | - development
25 | - system
26 | - git
27 | - vcs
28 | - source
29 | - code
30 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.git/molecule/default/converge.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | git_install_from_source: false
8 | git_install_path: /usr/local
9 |
10 | pre_tasks:
11 | - name: Update apt cache.
12 | apt: update_cache=true cache_valid_time=600
13 | when: ansible_os_family == 'Debian'
14 | changed_when: false
15 |
16 | roles:
17 | - role: geerlingguy.git
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.git/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | lint: |
7 | set -e
8 | yamllint .
9 | ansible-lint
10 | platforms:
11 | - name: instance
12 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
13 | command: ${MOLECULE_DOCKER_COMMAND:-""}
14 | volumes:
15 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
16 | privileged: true
17 | pre_build_image: true
18 | provisioner:
19 | name: ansible
20 | playbooks:
21 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
22 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.git/molecule/default/playbook-source.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | git_install_from_source: true
8 | git_install_from_source_force_update: true
9 | git_version: "2.26.0"
10 |
11 | pre_tasks:
12 | - name: Update apt cache.
13 | apt: update_cache=true cache_valid_time=600
14 | when: ansible_os_family == 'Debian'
15 | changed_when: false
16 |
17 | roles:
18 | - role: geerlingguy.git
19 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.git/vars/Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | git_install_from_source_dependencies:
3 | - libcurl4-gnutls-dev
4 | - libexpat1-dev
5 | - gettext
6 | - libssl-dev
7 | - zlib1g-dev
8 | - build-essential
9 | - gcc
10 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.git/vars/Fedora.yml:
--------------------------------------------------------------------------------
1 | ---
2 | git_install_from_source_dependencies:
3 | - gettext-devel
4 | - expat-devel
5 | - curl-devel
6 | - zlib-devel
7 | - perl-devel
8 | - openssl-devel
9 | - subversion-perl
10 | - make
11 | - gcc
12 | - tar
13 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.git/vars/RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | git_install_from_source_dependencies:
3 | - gettext-devel
4 | - expat-devel
5 | - curl-devel
6 | - zlib-devel
7 | - perl-devel
8 | - openssl-devel
9 | - subversion-perl
10 | - make
11 | - gcc
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.git/vars/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # This space intentionally left blank.
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 | rules:
4 | line-length:
5 | max: 120
6 | level: warning
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Set java_packages if you would like to use a different version than the
3 | # default for the OS (see defaults per OS in `vars` directory).
4 | # java_packages: []
5 |
6 | java_home: ""
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/molecule/default/converge.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | pre_tasks:
7 | - name: Update apt cache.
8 | apt: update_cache=true cache_valid_time=600
9 | when: ansible_os_family == 'Debian'
10 | changed_when: false
11 |
12 | roles:
13 | - role: geerlingguy.java
14 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | lint: |
7 | set -e
8 | yamllint .
9 | ansible-lint
10 | platforms:
11 | - name: instance
12 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
13 | command: ${MOLECULE_DOCKER_COMMAND:-""}
14 | volumes:
15 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
16 | privileged: true
17 | pre_build_image: true
18 | provisioner:
19 | name: ansible
20 | playbooks:
21 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
22 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/tasks/setup-Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 and
3 | # https://github.com/geerlingguy/ansible-role-java/issues/64
4 | - name: Ensure 'man' directory exists.
5 | file:
6 | path: /usr/share/man/man1
7 | state: directory
8 | recurse: true
9 | when:
10 | - ansible_distribution == 'Ubuntu'
11 | - ansible_distribution_major_version | int >= 18
12 |
13 | - name: Ensure Java is installed.
14 | apt:
15 | name: "{{ java_packages }}"
16 | state: present
17 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/tasks/setup-FreeBSD.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure Java is installed.
3 | pkgng:
4 | name: "{{ java_packages }}"
5 | state: present
6 |
7 | - name: ensure proc is mounted
8 | mount: name=/proc fstype=procfs src=proc opts=rw state=mounted
9 |
10 | - name: ensure fdesc is mounted
11 | mount: name=/dev/fd fstype=fdescfs src=fdesc opts=rw state=mounted
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/tasks/setup-RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure Java is installed.
3 | package:
4 | name: "{{ java_packages }}"
5 | state: present
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/templates/java_home.sh.j2:
--------------------------------------------------------------------------------
1 | export JAVA_HOME={{ java_home }}
2 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/vars/Debian-10.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # JDK version options include:
3 | # - java
4 | # - openjdk-11-jdk
5 | __java_packages:
6 | - openjdk-11-jdk
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/vars/Debian-8.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # JDK version options include:
3 | # - java
4 | # - openjdk-6-jdk
5 | # - openjdk-7-jdk
6 | __java_packages:
7 | - openjdk-7-jdk
8 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/vars/Debian-9.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # JDK version options include:
3 | # - java
4 | # - openjdk-8-jdk
5 | __java_packages:
6 | - openjdk-8-jdk
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/vars/Fedora.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # JDK version options include:
3 | # - java
4 | # - java-1.8.0-openjdk
5 | __java_packages:
6 | - java-1.8.0-openjdk
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/vars/FreeBSD.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # JDK version options for FreeBSD include:
3 | # - openjdk
4 | # - openjdk6
5 | # - openjdk8
6 | __java_packages:
7 | - openjdk
8 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/vars/RedHat-6.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # JDK version options include:
3 | # - java
4 | # - java-1.6.0-openjdk
5 | # - java-1.7.0-openjdk
6 | __java_packages:
7 | - java-1.7.0-openjdk
8 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/vars/RedHat-7.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # JDK version options include:
3 | # - java
4 | # - java-1.6.0-openjdk
5 | # - java-1.7.0-openjdk
6 | # - java-1.8.0-openjdk
7 | __java_packages:
8 | - java-1.8.0-openjdk
9 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/vars/RedHat-8.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # JDK version options include:
3 | # - java-1.8.0-openjdk
4 | # - java-11-openjdk
5 | # - java-latest-openjdk
6 | __java_packages:
7 | - java-11-openjdk
8 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/vars/Ubuntu-12.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # JDK version options include:
3 | # - java
4 | # - openjdk-6-jdk
5 | # - openjdk-7-jdk
6 | __java_packages:
7 | - openjdk-7-jdk
8 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/vars/Ubuntu-14.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # JDK version options include:
3 | # - java
4 | # - openjdk-6-jdk
5 | # - openjdk-7-jdk
6 | __java_packages:
7 | - openjdk-7-jdk
8 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/vars/Ubuntu-16.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # JDK version options include:
3 | # - java
4 | # - openjdk-8-jdk
5 | # - openjdk-9-jdk
6 | __java_packages:
7 | - openjdk-8-jdk
8 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/vars/Ubuntu-18.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # JDK version options include:
3 | # - java
4 | # - openjdk-11-jdk
5 | __java_packages:
6 | - openjdk-11-jdk
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.java/vars/Ubuntu-20.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # JDK version options include:
3 | # - java
4 | # - openjdk-11-jdk
5 | __java_packages:
6 | - openjdk-11-jdk
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mailhog/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - '306'
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mailhog/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mailhog/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | language: python
3 | services: docker
4 |
5 | env:
6 | global:
7 | - ROLE_NAME: mailhog
8 | matrix:
9 | - MOLECULE_DISTRO: centos7
10 | - MOLECULE_DISTRO: ubuntu1804
11 | - MOLECULE_DISTRO: debian9
12 |
13 | install:
14 | # Install test dependencies.
15 | - pip install molecule docker
16 |
17 | before_script:
18 | # Use actual Ansible Galaxy role name for the project directory.
19 | - cd ../
20 | - mv ansible-role-$ROLE_NAME geerlingguy.$ROLE_NAME
21 | - cd geerlingguy.$ROLE_NAME
22 |
23 | script:
24 | # Run tests.
25 | - molecule test
26 |
27 | notifications:
28 | webhooks: https://galaxy.ansible.com/api/v1/notifications/
29 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mailhog/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | mailhog_install_dir: /opt/mailhog
3 | mailhog_version: 1.0.0
4 | mailhog_binary_url: "https://github.com/mailhog/MailHog/releases/download/v{{ mailhog_version }}/MailHog_linux_amd64"
5 | mhsendmail_version: 0.2.0
6 | mhsendmail_binary_url: "https://github.com/mailhog/mhsendmail/releases/download/v{{ mhsendmail_version }}/mhsendmail_linux_amd64"
7 |
8 | # Path to daemonize, which is used to launch MailHog via init script.
9 | mailhog_daemonize_bin_path: /usr/sbin/daemonize
10 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mailhog/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies:
3 | - geerlingguy.daemonize
4 |
5 | galaxy_info:
6 | author: geerlingguy
7 | description: "MailHog for Linux"
8 | company: "Midwestern Mac, LLC"
9 | license: "license (BSD, MIT)"
10 | min_ansible_version: 1.8
11 | platforms:
12 | - name: EL
13 | versions:
14 | - all
15 | - name: Ubuntu
16 | versions:
17 | - all
18 | - name: Debian
19 | versions:
20 | - all
21 | galaxy_tags:
22 | - development
23 | - web
24 | - system
25 | - mail
26 | - mailhog
27 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mailhog/molecule/default/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - src: geerlingguy.daemonize
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mailhog/molecule/default/test-message:
--------------------------------------------------------------------------------
1 | From: johndoe@example.com
2 | To: janedoe@example.com
3 | Subject: Test email
4 |
5 | Hello world!
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mailhog/molecule/default/yaml-lint.yml:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 | rules:
4 | line-length:
5 | max: 160
6 | level: warning
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mailhog/templates/mailhog.unit.j2:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=MailHog Email Catcher
3 | After=syslog.target network.target
4 |
5 | [Service]
6 | Type=simple
7 | ExecStart={{ mailhog_install_dir }}/mailhog
8 | StandardOutput=journal
9 | Restart=on-failure
10 |
11 | [Install]
12 | WantedBy=multi-user.target
13 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.memcached/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - 'yaml'
3 | - 'role-name'
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.memcached/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.memcached/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 | .cache
5 |
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.memcached/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 120
7 | level: warning
8 |
9 | ignore: |
10 | .github/stale.yml
11 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.memcached/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | memcached_port: 11211
3 | memcached_listen_ip: 127.0.0.1
4 |
5 | memcached_memory_limit: 64
6 | memcached_connections: 1024
7 |
8 | memcached_log_file: /var/log/memcached.log
9 | memcached_log_verbosity: ""
10 |
11 | memcached_max_item_size: 1m
12 |
13 | memcached_threads: 4
14 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.memcached/handlers/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: restart memcached
3 | service: name=memcached state=restarted
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.memcached/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies: []
3 |
4 | galaxy_info:
5 | role_name: memcached
6 | author: geerlingguy
7 | description: Memcached for Linux
8 | company: "Midwestern Mac, LLC"
9 | license: "license (BSD, MIT)"
10 | min_ansible_version: 2.4
11 | platforms:
12 | - name: EL
13 | versions:
14 | - 7
15 | - 8
16 | - name: Ubuntu
17 | versions:
18 | - precise
19 | - trusty
20 | - xenial
21 | - bionic
22 | - name: Debian
23 | versions:
24 | - all
25 | galaxy_tags:
26 | - web
27 | - database
28 | - memcached
29 | - keyvalue
30 | - kv
31 | - cache
32 | - caching
33 | - performance
34 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.memcached/molecule/default/converge.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | pre_tasks:
7 | - name: Update apt cache.
8 | apt: update_cache=yes cache_valid_time=600
9 | when: ansible_os_family == 'Debian'
10 |
11 | roles:
12 | - role: geerlingguy.memcached
13 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.memcached/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.memcached/vars/Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | __memcached_user: memcache
3 | memcached_config_file: /etc/memcached.conf
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.memcached/vars/RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | __memcached_user: memcached
3 | memcached_config_file: /etc/sysconfig/memcached
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - 'yaml'
3 | - 'role-name'
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 | .cache
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 160
7 | level: warning
8 |
9 | ignore: |
10 | .github/stale.yml
11 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/handlers/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: restart mysql
3 | service: "name={{ mysql_daemon }} state=restarted sleep=5"
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies: []
3 |
4 | galaxy_info:
5 | role_name: mysql
6 | author: geerlingguy
7 | description: MySQL server for RHEL/CentOS and Debian/Ubuntu.
8 | company: "Midwestern Mac, LLC"
9 | license: "license (BSD, MIT)"
10 | min_ansible_version: 2.4
11 | platforms:
12 | - name: EL
13 | versions:
14 | - 7
15 | - 8
16 | - name: Ubuntu
17 | versions:
18 | - all
19 | - name: Debian
20 | versions:
21 | - all
22 | - name: Archlinux
23 | versions:
24 | - all
25 | galaxy_tags:
26 | - database
27 | - mysql
28 | - mariadb
29 | - db
30 | - sql
31 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/molecule/default/converge.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | roles:
7 | - role: geerlingguy.mysql
8 |
9 | post_tasks:
10 | - name: Make sure we can connect to MySQL via Unix socket.
11 | command: "mysql -u root -proot -e 'show databases;'"
12 | changed_when: false
13 |
14 | - name: Make sure we can connect to MySQL via TCP.
15 | command: "mysql -u root -proot -h 127.0.0.1 -e 'show databases;'"
16 | changed_when: false
17 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/tasks/databases.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure MySQL databases are present.
3 | mysql_db:
4 | name: "{{ item.name }}"
5 | collation: "{{ item.collation | default('utf8_general_ci') }}"
6 | encoding: "{{ item.encoding | default('utf8') }}"
7 | state: "{{ item.state | default('present') }}"
8 | with_items: "{{ mysql_databases }}"
9 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/tasks/setup-Archlinux.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure MySQL Python libraries are installed.
3 | pacman: "name=mysql-python state=present"
4 |
5 | - name: Ensure MySQL packages are installed.
6 | pacman: "name={{ mysql_packages }} state=present"
7 | register: arch_mysql_install_packages
8 |
9 | - name: Run mysql_install_db if MySQL packages were changed.
10 | command: mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
11 | when: arch_mysql_install_packages.changed
12 | tags: ['skip_ansible_lint']
13 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/tasks/setup-RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure MySQL packages are installed.
3 | yum:
4 | name: "{{ mysql_packages }}"
5 | state: present
6 | enablerepo: "{{ mysql_enablerepo | default(omit, true) }}"
7 | register: rh_mysql_install_packages
8 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/tasks/users.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure MySQL users are present.
3 | mysql_user:
4 | name: "{{ item.name }}"
5 | host: "{{ item.host | default('localhost') }}"
6 | password: "{{ item.password }}"
7 | priv: "{{ item.priv | default('*.*:USAGE') }}"
8 | state: "{{ item.state | default('present') }}"
9 | append_privs: "{{ item.append_privs | default('no') }}"
10 | encrypted: "{{ item.encrypted | default('no') }}"
11 | with_items: "{{ mysql_users }}"
12 | no_log: true
13 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/templates/root-my.cnf.j2:
--------------------------------------------------------------------------------
1 | {{ ansible_managed | comment }}
2 |
3 | [client]
4 | user="{{ mysql_root_username }}"
5 | password="{{ mysql_root_password }}"
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/templates/user-my.cnf.j2:
--------------------------------------------------------------------------------
1 | {{ ansible_managed | comment }}
2 |
3 | [client]
4 | user="{{ mysql_user_name }}"
5 | password="{{ mysql_user_password }}"
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/vars/Archlinux.yml:
--------------------------------------------------------------------------------
1 | ---
2 | __mysql_daemon: mariadb
3 | __mysql_packages:
4 | - mariadb
5 | __mysql_slow_query_log_file: /var/log/mysql/mysql-slow.log
6 | __mysql_log_error: /var/log/mysql.err
7 | __mysql_syslog_tag: mysql
8 | __mysql_pid_file: /run/mysqld/mysqld.pid
9 | __mysql_config_file: /etc/mysql/my.cnf
10 | __mysql_config_include_dir: /etc/mysql/conf.d
11 | __mysql_socket: /run/mysqld/mysqld.sock
12 | __mysql_supports_innodb_large_prefix: true
13 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/vars/Debian-10.yml:
--------------------------------------------------------------------------------
1 | ---
2 | __mysql_daemon: mariadb
3 | __mysql_packages:
4 | - default-mysql-server
5 | mysql_log_file_group: adm
6 | __mysql_slow_query_log_file: /var/log/mysql/mysql-slow.log
7 | __mysql_log_error: /var/log/mysql/mysql.log
8 | __mysql_syslog_tag: mariadb
9 | __mysql_pid_file: /run/mysqld/mysqld.pid
10 | __mysql_config_file: /etc/mysql/my.cnf
11 | __mysql_config_include_dir: /etc/mysql/conf.d
12 | __mysql_socket: /run/mysqld/mysqld.sock
13 | __mysql_supports_innodb_large_prefix: true
14 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/vars/Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | __mysql_daemon: mysql
3 | __mysql_packages:
4 | - mysql-common
5 | - mysql-server
6 | mysql_log_file_group: adm
7 | __mysql_slow_query_log_file: /var/log/mysql/mysql-slow.log
8 | __mysql_log_error: /var/log/mysql/mysql.err
9 | __mysql_syslog_tag: mysql
10 | __mysql_pid_file: /var/run/mysqld/mysqld.pid
11 | __mysql_config_file: /etc/mysql/my.cnf
12 | __mysql_config_include_dir: /etc/mysql/conf.d
13 | __mysql_socket: /var/run/mysqld/mysqld.sock
14 | __mysql_supports_innodb_large_prefix: true
15 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.mysql/vars/RedHat-7.yml:
--------------------------------------------------------------------------------
1 | ---
2 | __mysql_daemon: mariadb
3 | __mysql_packages:
4 | - mariadb
5 | - mariadb-server
6 | - mariadb-libs
7 | - MySQL-python
8 | - perl-DBD-MySQL
9 | __mysql_slow_query_log_file: /var/log/mysql-slow.log
10 | __mysql_log_error: /var/log/mariadb/mariadb.log
11 | __mysql_syslog_tag: mariadb
12 | __mysql_pid_file: /var/run/mariadb/mariadb.pid
13 | __mysql_config_file: /etc/my.cnf
14 | __mysql_config_include_dir: /etc/my.cnf.d
15 | __mysql_socket: /var/lib/mysql/mysql.sock
16 | __mysql_supports_innodb_large_prefix: true
17 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - 'yaml'
3 | - 'role-name'
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 | .cache
5 |
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 120
7 | level: warning
8 |
9 | ignore: |
10 | .github/stale.yml
11 | .travis.yml
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/handlers/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: restart nginx
3 | service: name=nginx state=restarted
4 |
5 | - name: validate nginx configuration
6 | command: nginx -t -c /etc/nginx/nginx.conf
7 | changed_when: false
8 |
9 | - name: reload nginx
10 | service: name=nginx state=reloaded
11 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/molecule/default/converge.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 |
5 | vars:
6 | nginx_use_ppa: true
7 | nginx_remove_default_vhost: true
8 | nginx_vhosts:
9 | - server_name: "test.dev"
10 | root: "/var/www/test"
11 |
12 | pre_tasks:
13 | - name: Update apt cache.
14 | apt: update_cache=yes cache_valid_time=600
15 | when: ansible_os_family == 'Debian'
16 | changed_when: false
17 |
18 | roles:
19 | - role: geerlingguy.nginx
20 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/tasks/setup-Archlinux.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure nginx is installed.
3 | pacman:
4 | name: "{{ nginx_package_name }}"
5 | state: present
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/tasks/setup-Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Update apt cache.
3 | apt: update_cache=yes cache_valid_time=86400
4 | changed_when: false
5 |
6 | - name: Ensure nginx is installed.
7 | apt:
8 | name: "{{ nginx_package_name }}"
9 | state: present
10 | default_release: "{{ nginx_default_release }}"
11 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/tasks/setup-FreeBSD.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Update pkg cache.
3 | command: pkg update -f
4 | environment:
5 | ASSUME_ALWAYS_YES: "yes"
6 | tags: ['skip_ansible_lint']
7 |
8 | - name: Ensure nginx is installed.
9 | pkgng:
10 | name: "{{ nginx_package_name }}"
11 | state: present
12 |
13 | - name: Create logs directory.
14 | file:
15 | path: /var/log/nginx
16 | state: directory
17 | mode: 0755
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/tasks/setup-OpenBSD.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure nginx is installed.
3 | openbsd_pkg:
4 | name: "{{ nginx_package_name }}"
5 | state: present
6 |
7 | - name: Create logs directory.
8 | file:
9 | path: /var/log/nginx
10 | state: directory
11 | mode: 0755
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/tasks/setup-RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Enable nginx repo.
3 | template:
4 | src: nginx.repo.j2
5 | dest: /etc/yum.repos.d/nginx.repo
6 | owner: root
7 | group: "{{ root_group }}"
8 | mode: 0644
9 | when: nginx_yum_repo_enabled | bool
10 |
11 | - name: Ensure nginx is installed.
12 | package:
13 | name: "{{ nginx_package_name }}"
14 | state: present
15 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/tasks/setup-Ubuntu.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure dirmngr is installed (gnupg dependency).
3 | apt:
4 | name: dirmngr
5 | state: present
6 |
7 | - name: Add PPA for Nginx (if configured).
8 | apt_repository:
9 | repo: 'ppa:nginx/{{ nginx_ppa_version }}'
10 | state: present
11 | update_cache: true
12 | register: nginx_ppa_added
13 | when: nginx_ppa_use | bool
14 |
15 | - name: Ensure nginx will reinstall if the PPA was just added.
16 | apt:
17 | name: nginx
18 | state: absent
19 | when: nginx_ppa_added is changed
20 | tags: ['skip_ansible_lint']
21 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/templates/nginx.repo.j2:
--------------------------------------------------------------------------------
1 | [nginx]
2 | name=nginx repo
3 | baseurl=http://nginx.org/packages/centos/{{ ansible_distribution_major_version }}/$basearch/
4 | gpgcheck=0
5 | enabled=1
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/vars/Archlinux.yml:
--------------------------------------------------------------------------------
1 | ---
2 | root_group: root
3 | nginx_conf_path: /etc/nginx/conf.d
4 | nginx_conf_file_path: /etc/nginx/nginx.conf
5 | nginx_mime_file_path: /etc/nginx/mime.types
6 | nginx_pidfile: /run/nginx.pid
7 | nginx_vhost_path: /etc/nginx/sites-enabled
8 | nginx_default_vhost_path: /etc/nginx/sites-enabled/default
9 | __nginx_user: "http"
10 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/vars/Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | root_group: root
3 | nginx_conf_path: /etc/nginx/conf.d
4 | nginx_conf_file_path: /etc/nginx/nginx.conf
5 | nginx_mime_file_path: /etc/nginx/mime.types
6 | nginx_pidfile: /run/nginx.pid
7 | nginx_vhost_path: /etc/nginx/sites-enabled
8 | nginx_default_vhost_path: /etc/nginx/sites-enabled/default
9 | __nginx_user: "www-data"
10 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/vars/FreeBSD.yml:
--------------------------------------------------------------------------------
1 | ---
2 | root_group: wheel
3 | nginx_conf_path: /usr/local/etc/nginx/conf.d
4 | nginx_conf_file_path: /usr/local/etc/nginx/nginx.conf
5 | nginx_mime_file_path: /usr/local/etc/nginx/mime.types
6 | nginx_pidfile: /var/run/nginx.pid
7 | nginx_vhost_path: /usr/local/etc/nginx/sites-enabled
8 | nginx_default_vhost_path: /usr/local/etc/nginx/sites-enabled/default
9 | __nginx_user: "www"
10 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/vars/OpenBSD.yml:
--------------------------------------------------------------------------------
1 | ---
2 | root_group: wheel
3 | nginx_conf_path: /etc/nginx/conf.d
4 | nginx_conf_file_path: /etc/nginx/nginx.conf
5 | nginx_mime_file_path: /etc/nginx/mime.types
6 | nginx_pidfile: /var/run/nginx.pid
7 | nginx_vhost_path: /etc/nginx/sites-enabled
8 | nginx_default_vhost_path: /etc/nginx/sites-enabled/default
9 | nginx_package_name: "nginx--"
10 | __nginx_user: "www"
11 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/vars/RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | root_group: root
3 | nginx_conf_path: /etc/nginx/conf.d
4 | nginx_conf_file_path: /etc/nginx/nginx.conf
5 | nginx_mime_file_path: /etc/nginx/mime.types
6 | nginx_pidfile: /var/run/nginx.pid
7 | nginx_vhost_path: /etc/nginx/conf.d
8 | nginx_default_vhost_path: /etc/nginx/conf.d/default.conf
9 | __nginx_user: "nginx"
10 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nginx/vars/Rocky.yml:
--------------------------------------------------------------------------------
1 | ---
2 | root_group: root
3 | nginx_conf_path: /etc/nginx/conf.d
4 | nginx_conf_file_path: /etc/nginx/nginx.conf
5 | nginx_mime_file_path: /etc/nginx/mime.types
6 | nginx_pidfile: /var/run/nginx.pid
7 | nginx_vhost_path: /etc/nginx/conf.d
8 | nginx_default_vhost_path: /etc/nginx/conf.d/default.conf
9 | __nginx_user: "nginx"
10 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nodejs/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - 'yaml'
3 | - 'role-name'
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nodejs/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nodejs/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 | .cache
5 |
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nodejs/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 220
7 | level: warning
8 |
9 | ignore: |
10 | .github/stale.yml
11 | .travis.yml
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nodejs/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies: []
3 |
4 | galaxy_info:
5 | role_name: nodejs
6 | author: geerlingguy
7 | description: Node.js installation for Linux
8 | company: "Midwestern Mac, LLC"
9 | license: "license (BSD, MIT)"
10 | min_ansible_version: 2.4
11 | platforms:
12 | - name: EL
13 | versions:
14 | - 7
15 | - 8
16 | - name: Debian
17 | versions:
18 | - all
19 | - name: Ubuntu
20 | versions:
21 | - trusty
22 | - xenial
23 | - bionic
24 | galaxy_tags:
25 | - development
26 | - web
27 | - javascript
28 | - js
29 | - node
30 | - npm
31 | - nodejs
32 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nodejs/molecule/default/converge.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | nodejs_install_npm_user: root
8 | npm_config_prefix: /root/.npm-global
9 | npm_config_unsafe_perm: "true"
10 | nodejs_npm_global_packages:
11 | - node-sass
12 | - name: jslint
13 | version: 0.12.0
14 | - name: yo
15 |
16 | pre_tasks:
17 | - name: Update apt cache.
18 | apt: update_cache=true cache_valid_time=600
19 | when: ansible_os_family == 'Debian'
20 |
21 | roles:
22 | - role: geerlingguy.nodejs
23 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nodejs/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nodejs/molecule/default/playbook-latest.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | nodejs_version: "13.x"
8 | nodejs_install_npm_user: root
9 | npm_config_prefix: /root/.npm-global
10 | npm_config_unsafe_perm: "true"
11 | nodejs_npm_global_packages:
12 | - slugify
13 | - name: jslint
14 | version: 0.12.0
15 | - name: yo
16 |
17 | pre_tasks:
18 | - name: Update apt cache.
19 | apt: update_cache=true cache_valid_time=600
20 | when: ansible_os_family == 'Debian'
21 |
22 | roles:
23 | - role: geerlingguy.nodejs
24 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.nodejs/templates/npm.sh.j2:
--------------------------------------------------------------------------------
1 | export PATH=$PATH:{{ npm_config_prefix }}/bin
2 | export NPM_CONFIG_PREFIX={{ npm_config_prefix }}
3 | export NODE_PATH=$NODE_PATH:{{ npm_config_prefix }}/lib/node_modules
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-memcached/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-memcached/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Pass in a comma-separated list of repos to use (e.g. "remi,epel").
3 | php_enablerepo: ""
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-memcached/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies:
3 | - geerlingguy.php
4 |
5 | galaxy_info:
6 | author: geerlingguy
7 | description: PHP Memcached support for Linux
8 | company: "Midwestern Mac, LLC"
9 | license: "license (BSD, MIT)"
10 | min_ansible_version: 1.8
11 | platforms:
12 | - name: EL
13 | versions:
14 | - 6
15 | - 7
16 | - name: Debian
17 | versions:
18 | - all
19 | - name: Ubuntu
20 | versions:
21 | - all
22 | galaxy_tags:
23 | - database
24 | - web
25 | - php
26 | - memcached
27 | - cache
28 | - performance
29 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-memcached/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | lint:
7 | name: yamllint
8 | options:
9 | config-file: molecule/default/yaml-lint.yml
10 | platforms:
11 | - name: instance
12 | image: geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible
13 | command: ${MOLECULE_DOCKER_COMMAND:-"sleep infinity"}
14 | privileged: true
15 | pre_build_image: true
16 | provisioner:
17 | name: ansible
18 | lint:
19 | name: ansible-lint
20 | playbooks:
21 | converge: ${MOLECULE_PLAYBOOK:-playbook.yml}
22 | scenario:
23 | name: default
24 | verifier:
25 | name: testinfra
26 | lint:
27 | name: flake8
28 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-memcached/molecule/default/playbook.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | php_enable_webserver: false
8 |
9 | roles:
10 | - role: geerlingguy.memcached
11 | - role: geerlingguy.php
12 | - role: geerlingguy.php-memcached
13 |
14 | post_tasks:
15 | - name: Run test script to confirm Memcached is reachable via PHP.
16 | script: memcached-test.php
17 | args:
18 | executable: php
19 | changed_when: false
20 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-memcached/molecule/default/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - src: geerlingguy.memcached
3 | - src: geerlingguy.php
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-memcached/molecule/default/tests/test_default.py:
--------------------------------------------------------------------------------
1 | import os
2 |
3 | import testinfra.utils.ansible_runner
4 |
5 | testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
6 | os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
7 |
8 |
9 | def test_hosts_file(host):
10 | f = host.file('/etc/hosts')
11 |
12 | assert f.exists
13 | assert f.user == 'root'
14 | assert f.group == 'root'
15 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-memcached/molecule/default/yaml-lint.yml:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 | rules:
4 | line-length:
5 | max: 120
6 | level: warning
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-memcached/vars/Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | __php_memcached_package: php-memcached
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-memcached/vars/RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | __php_memcached_package: php-pecl-memcached
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-mysql/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-mysql/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-mysql/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | language: python
3 | services: docker
4 |
5 | env:
6 | global:
7 | - ROLE_NAME: php-mysql
8 | matrix:
9 | - MOLECULE_DISTRO: centos7
10 | - MOLECULE_DISTRO: ubuntu2004
11 | - MOLECULE_DISTRO: debian10
12 |
13 | install:
14 | # Install test dependencies.
15 | - pip install molecule yamllint ansible-lint docker
16 |
17 | before_script:
18 | # Use actual Ansible Galaxy role name for the project directory.
19 | - cd ../
20 | - mv ansible-role-$ROLE_NAME geerlingguy.$ROLE_NAME
21 | - cd geerlingguy.$ROLE_NAME
22 |
23 | script:
24 | # Run tests.
25 | - molecule test
26 |
27 | notifications:
28 | webhooks: https://galaxy.ansible.com/api/v1/notifications/
29 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-mysql/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 | rules:
4 | line-length:
5 | max: 120
6 | level: warning
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-mysql/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Pass in a comma-separated list of repos to use (e.g. "remi,epel").
3 | php_enablerepo: ""
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-mysql/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies:
3 | - geerlingguy.php
4 |
5 | galaxy_info:
6 | # See: https://github.com/ansible/galaxy/issues/2393
7 | # role_name: php-mysql
8 | author: geerlingguy
9 | description: PHP MySQL support for Linux.
10 | company: "Midwestern Mac, LLC"
11 | license: "license (BSD, MIT)"
12 | min_ansible_version: 2.4
13 | platforms:
14 | - name: EL
15 | versions:
16 | - all
17 | - name: Debian
18 | versions:
19 | - all
20 | - name: Ubuntu
21 | versions:
22 | - all
23 | galaxy_tags:
24 | - database
25 | - web
26 | - mysql
27 | - php
28 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-mysql/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | lint: |
7 | set -e
8 | yamllint .
9 | ansible-lint
10 | platforms:
11 | - name: instance
12 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
13 | command: ${MOLECULE_DOCKER_COMMAND:-""}
14 | volumes:
15 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
16 | privileged: true
17 | pre_build_image: true
18 | provisioner:
19 | name: ansible
20 | playbooks:
21 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
22 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-mysql/molecule/default/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - src: geerlingguy.repo-remi
3 | - src: geerlingguy.apache
4 | - src: geerlingguy.mysql
5 | - src: geerlingguy.php
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-mysql/vars/Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | __php_mysql_package: php{{ php_default_version_debian | default("7.4") }}-mysql
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-mysql/vars/RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | __php_mysql_package: php-mysql
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-pecl/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - '306'
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-pecl/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-pecl/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-pecl/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | language: python
3 | services: docker
4 |
5 | env:
6 | global:
7 | - ROLE_NAME: php-pecl
8 | matrix:
9 | - MOLECULE_DISTRO: centos8
10 | - MOLECULE_DISTRO: ubuntu1804
11 | - MOLECULE_DISTRO: debian10
12 |
13 | install:
14 | # Install test dependencies.
15 | - pip install molecule yamllint ansible-lint docker
16 |
17 | before_script:
18 | # Use actual Ansible Galaxy role name for the project directory.
19 | - cd ../
20 | - mv ansible-role-$ROLE_NAME geerlingguy.$ROLE_NAME
21 | - cd geerlingguy.$ROLE_NAME
22 |
23 | script:
24 | # Run tests.
25 | - molecule test
26 |
27 | notifications:
28 | webhooks: https://galaxy.ansible.com/api/v1/notifications/
29 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-pecl/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 | rules:
4 | line-length:
5 | max: 120
6 | level: warning
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-pecl/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | php_pecl_install_pecl: false
3 |
4 | php_pecl_install_command: "pecl install"
5 |
6 | # Add extensions to this list to have them installed with this role.
7 | php_pecl_extensions: []
8 | # - xdebug
9 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-pecl/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | lint: |
7 | set -e
8 | yamllint .
9 | ansible-lint
10 | platforms:
11 | - name: instance
12 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
13 | command: ${MOLECULE_DOCKER_COMMAND:-""}
14 | volumes:
15 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
16 | privileged: true
17 | pre_build_image: true
18 | provisioner:
19 | name: ansible
20 | playbooks:
21 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
22 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.php-pecl/molecule/default/pecl-test.php:
--------------------------------------------------------------------------------
1 | /dev/null && which gem >/dev/null; then
2 | PATH="$(ruby -e 'puts Gem.user_dir')/bin:$PATH"
3 | fi
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.ruby/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.ruby/molecule/default/source-install.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | ruby_install_from_source: true
8 | ruby_install_gems_user: root
9 | ruby_install_gems:
10 | - sass
11 |
12 | pre_tasks:
13 | - name: Update apt cache.
14 | apt: update_cache=true cache_valid_time=600
15 | when: ansible_os_family == 'Debian'
16 |
17 | roles:
18 | - role: geerlingguy.ruby
19 |
20 | post_tasks:
21 | - name: Verify Ruby is installed.
22 | command: ruby --version
23 | changed_when: false
24 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.ruby/tasks/setup-Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Update apt cache.
3 | apt: update_cache=yes cache_valid_time=86400
4 |
5 | - name: Set rubygems package name for Ubuntu 14.04.
6 | set_fact:
7 | ruby_rubygems_package_name: rubygems-integration
8 | when: ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'trusty'
9 |
10 | - name: Install ruby and other required dependencies.
11 | apt:
12 | name: "{{ ruby_packages }}"
13 | state: present
14 |
15 | - name: Install rubygems.
16 | apt:
17 | name: "{{ ruby_rubygems_package_name }}"
18 | state: present
19 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.ruby/tasks/setup-RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Install ruby, rubygems, and development tools.
3 | yum:
4 | name: "{{ ruby_packages }}"
5 | state: present
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.ruby/vars/Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | __ruby_packages:
3 | - ruby-full
4 | - ruby-dev
5 | - build-essential
6 | - autogen
7 | - autoconf
8 | - libtool
9 | __ruby_build_packages:
10 | - build-essential
11 | - zlib1g-dev
12 | - libssl-dev
13 | - libyaml-dev
14 | - libreadline6-dev
15 | - libncurses5-dev
16 | - libffi-dev
17 | - libgdbm-dev
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.ruby/vars/RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | __ruby_packages:
3 | - ruby
4 | - ruby-devel
5 | - "{{ ruby_rubygems_package_name }}"
6 | - '@development'
7 | __ruby_build_packages:
8 | - '@development'
9 | - zlib-devel
10 | - openssl-static
11 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.security/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - '106'
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.security/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.security/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.security/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 120
7 | level: warning
8 |
9 | ignore: |
10 | .github/stale.yml
11 | .travis.yml
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.security/handlers/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: restart ssh
3 | service:
4 | name: "{{ security_sshd_name }}"
5 | state: "{{ security_ssh_restart_handler_state }}"
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.security/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | lint: |
7 | set -e
8 | yamllint .
9 | ansible-lint
10 | platforms:
11 | - name: instance
12 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
13 | command: ${MOLECULE_DOCKER_COMMAND:-""}
14 | volumes:
15 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
16 | privileged: true
17 | pre_build_image: true
18 | provisioner:
19 | name: ansible
20 | playbooks:
21 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
22 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.security/tasks/autoupdate-Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Install unattended upgrades package.
3 | package:
4 | name: unattended-upgrades
5 | state: present
6 |
7 | - name: Copy unattended-upgrades configuration files in place.
8 | template:
9 | src: "{{ item }}.j2"
10 | dest: "/etc/apt/apt.conf.d/{{ item }}"
11 | owner: root
12 | group: root
13 | mode: 0644
14 | with_items:
15 | - 10periodic
16 | - 50unattended-upgrades
17 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.security/tasks/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Include OS-specific variables.
3 | include_vars: "{{ ansible_os_family }}.yml"
4 |
5 | # Fail2Ban
6 | - include_tasks: fail2ban.yml
7 | when: security_fail2ban_enabled | bool
8 |
9 | # SSH
10 | - include_tasks: ssh.yml
11 |
12 | # Autoupdate
13 | - include_tasks: autoupdate-RedHat.yml
14 | when:
15 | - ansible_os_family == 'RedHat'
16 | - security_autoupdate_enabled | bool
17 |
18 | - include_tasks: autoupdate-Debian.yml
19 | when:
20 | - ansible_os_family == 'Debian'
21 | - security_autoupdate_enabled | bool
22 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.security/templates/10periodic.j2:
--------------------------------------------------------------------------------
1 | APT::Periodic::Update-Package-Lists "1";
2 | APT::Periodic::Download-Upgradeable-Packages "1";
3 | APT::Periodic::AutocleanInterval "7";
4 | APT::Periodic::Unattended-Upgrade "1";
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.security/templates/jail.local.j2:
--------------------------------------------------------------------------------
1 | [sshd]
2 | enabled = true
3 | port = {{ security_ssh_port }}
4 | filter = sshd
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.security/vars/Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | security_ssh_config_path: /etc/ssh/sshd_config
3 | security_sshd_name: ssh
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.security/vars/RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | security_ssh_config_path: /etc/ssh/sshd_config
3 | security_sshd_name: sshd
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/.ansible-lint:
--------------------------------------------------------------------------------
1 | skip_list:
2 | - 'yaml'
3 | - 'role-name'
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 | .cache
5 |
6 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 |
4 | rules:
5 | line-length:
6 | max: 120
7 | level: warning
8 |
9 | ignore: |
10 | .github/stale.yml
11 | .travis.yml
12 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/handlers/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: restart solr
3 | service:
4 | name: "{{ solr_service_name }}"
5 | state: restarted
6 | sleep: 5
7 | when: solr_restart_handler_enabled
8 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/meta/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependencies: []
3 |
4 | galaxy_info:
5 | role_name: solr
6 | author: geerlingguy
7 | description: Apache Solr for Linux.
8 | company: "Midwestern Mac, LLC"
9 | license: "license (BSD, MIT)"
10 | min_ansible_version: 2.4
11 | platforms:
12 | - name: EL
13 | versions:
14 | - 7
15 | - 8
16 | - name: Debian
17 | versions:
18 | - all
19 | - name: Ubuntu
20 | versions:
21 | - all
22 | galaxy_tags:
23 | - development
24 | - solr
25 | - search
26 | - lucene
27 | - container
28 | - apache
29 | - text
30 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | platforms:
7 | - name: instance
8 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
9 | command: ${MOLECULE_DOCKER_COMMAND:-""}
10 | volumes:
11 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
12 | privileged: true
13 | pre_build_image: true
14 | provisioner:
15 | name: ansible
16 | playbooks:
17 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/molecule/default/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - src: geerlingguy.java
3 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/molecule/default/solr-3.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | solr_version: "3.6.2"
8 |
9 | pre_tasks:
10 | - name: Update apt cache.
11 | apt: update_cache=true cache_valid_time=600
12 | when: ansible_os_family == "Debian"
13 |
14 | roles:
15 | - role: geerlingguy.java
16 | - role: geerlingguy.solr
17 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/molecule/default/solr-4.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | solr_version: "4.10.4"
8 | solr_remove_cruft: true
9 |
10 | pre_tasks:
11 | - name: Update apt cache.
12 | apt: update_cache=true cache_valid_time=600
13 | when: ansible_os_family == "Debian"
14 |
15 | roles:
16 | - role: geerlingguy.java
17 | - role: geerlingguy.solr
18 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/molecule/default/solr-5.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Converge
3 | hosts: all
4 | become: true
5 |
6 | vars:
7 | solr_version: "5.5.5"
8 | solr_remove_cruft: true
9 | java_packages:
10 | - openjdk-8-jdk
11 |
12 | pre_tasks:
13 | - name: Update apt cache.
14 | apt: update_cache=true cache_valid_time=600
15 | when: ansible_os_family == "Debian"
16 |
17 | roles:
18 | - role: geerlingguy.java
19 | - role: geerlingguy.solr
20 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/tasks/trim-fat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Remove the downloaded Solr archive.
3 | file:
4 | path: "{{ item }}"
5 | state: absent
6 | with_items:
7 | - "{{ solr_workspace }}/{{ solr_filename }}.tgz"
8 | - "{{ solr_workspace }}/{{ solr_filename }}"
9 |
10 | - name: Remove docs, if not needed.
11 | file:
12 | path: "{{ solr_install_path }}/docs"
13 | state: absent
14 | when: solr_remove_cruft
15 |
16 | - name: Remove example dir, if not needed.
17 | file:
18 | path: "{{ solr_install_path }}/example"
19 | state: absent
20 | when:
21 | - solr_remove_cruft
22 | - solr_version.split('.')[0] >= '5'
23 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/tasks/user.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Ensure solr_group exists.
3 | group: "name={{ solr_group }} state=present"
4 |
5 | - name: Ensure solr_user exists.
6 | user:
7 | name: "{{ solr_user }}"
8 | state: present
9 | group: "{{ solr_group }}"
10 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.solr/templates/solr-pre5.unit.j2:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Apache SOLR
3 | After=syslog.target network.target remote-fs.target nss-lookup.target
4 |
5 | [Service]
6 | Type=simple
7 | WorkingDirectory={{ solr_install_path }}/example
8 | ExecStart=/usr/bin/java -jar -Dsolr.solr.home={{ solr_home }} -Djetty.host={{ solr_host }} -Djetty.port={{ solr_port }} -Xms{{ solr_xms }} -Xmx{{ solr_xmx }} start.jar
9 | Restart=on-failure
10 | User={{ solr_user }}
11 |
12 | [Install]
13 | WantedBy=multi-user.target
14 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.varnish/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | ---
3 | github: geerlingguy
4 | patreon: geerlingguy
5 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.varnish/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 | */__pycache__
3 | *.pyc
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.varnish/.yamllint:
--------------------------------------------------------------------------------
1 | ---
2 | extends: default
3 | rules:
4 | line-length:
5 | max: 180
6 | level: warning
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.varnish/handlers/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: reload systemd
3 | systemd: daemon-reload=true
4 |
5 | - name: restart varnish
6 | service: name=varnish state=restarted
7 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.varnish/molecule/default/molecule.yml:
--------------------------------------------------------------------------------
1 | ---
2 | dependency:
3 | name: galaxy
4 | driver:
5 | name: docker
6 | lint: |
7 | set -e
8 | yamllint .
9 | ansible-lint
10 | platforms:
11 | - name: instance
12 | image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
13 | command: ${MOLECULE_DOCKER_COMMAND:-""}
14 | volumes:
15 | - /sys/fs/cgroup:/sys/fs/cgroup:ro
16 | privileged: true
17 | pre_build_image: true
18 | provisioner:
19 | name: ansible
20 | playbooks:
21 | converge: ${MOLECULE_PLAYBOOK:-converge.yml}
22 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.varnish/templates/secret.j2:
--------------------------------------------------------------------------------
1 | {{ varnish_secret }}
2 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.varnish/vars/Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 | varnish_sysvinit_config_path: /etc/default
3 | varnish_systemd_config_path: /lib/systemd/system
4 |
--------------------------------------------------------------------------------
/provisioning/roles/geerlingguy.varnish/vars/RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | varnish_sysvinit_config_path: /etc/sysconfig
3 | varnish_systemd_config_path: /usr/lib/systemd/system
4 |
--------------------------------------------------------------------------------
/provisioning/roles/thom8.php-upload-progress/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | workspace: /root
3 |
--------------------------------------------------------------------------------
/provisioning/roles/thom8.php-upload-progress/templates/uploadprogress.ini.j2:
--------------------------------------------------------------------------------
1 | ; activate and configurate for php uploadprogress module
2 | extension={{ php_uploadprogress_module_path }}/uploadprogress.so
3 |
--------------------------------------------------------------------------------
/provisioning/roles/thom8.php-upload-progress/tests/Dockerfile.ubuntu-12.04:
--------------------------------------------------------------------------------
1 | FROM ubuntu:12.04
2 | RUN apt-get update
3 |
4 | # Install Ansible
5 | RUN apt-get install -y software-properties-common python-software-properties git
6 | RUN apt-add-repository -y ppa:ansible/ansible
7 | RUN apt-get update
8 | RUN apt-get install -y ansible
9 |
10 | RUN apt-get install -y unzip
11 |
12 | # Install Ansible inventory file
13 | RUN echo "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts
14 |
--------------------------------------------------------------------------------
/provisioning/roles/thom8.php-upload-progress/tests/Dockerfile.ubuntu-14.04:
--------------------------------------------------------------------------------
1 | FROM ubuntu:14.04
2 | RUN apt-get update
3 |
4 | # Install Ansible
5 | RUN apt-get install -y software-properties-common git
6 | RUN apt-add-repository -y ppa:ansible/ansible
7 | RUN apt-get update
8 | RUN apt-get install -y ansible
9 |
10 | RUN apt-get install -y unzip
11 |
12 | # Install Ansible inventory file
13 | RUN echo "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts
14 |
--------------------------------------------------------------------------------
/provisioning/roles/thom8.php-upload-progress/tests/inventory:
--------------------------------------------------------------------------------
1 | localhost
2 |
--------------------------------------------------------------------------------
/provisioning/roles/thom8.php-upload-progress/tests/test-source.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - hosts: all
3 |
4 | vars:
5 | php_enable_webserver: false
6 | php_enablerepo: "remi,remi-php70"
7 |
8 | pre_tasks:
9 | - name: Ensure build dependencies are installed (RedHat).
10 | yum: name=which state=present
11 | when: ansible_os_family == 'RedHat'
12 |
13 | - name: Add repository for PHP 7.0.
14 | apt_repository: repo='ppa:ondrej/php'
15 | when: ansible_os_family == 'Debian'
16 |
17 | roles:
18 | - { role: geerlingguy.repo-remi, when: ansible_os_family == 'RedHat' }
19 | - geerlingguy.php
20 | - role_under_test
21 |
--------------------------------------------------------------------------------
/provisioning/roles/thom8.php-upload-progress/tests/uploadprogress-test.php:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/provisioning/vars/Debian.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
--------------------------------------------------------------------------------
/provisioning/vars/RedHat.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Defaults set by `ansible-role-php` with the addition of `php-pecl-yaml` and `php-mcrypt`.
3 | php_packages:
4 | - php
5 | - php-cli
6 | - php-common
7 | - php-devel
8 | - php-fpm
9 | - php-gd
10 | - php-imap
11 | - php-ldap
12 | - php-mbstring
13 | - php-mcrypt
14 | - php-opcache
15 | - php-pdo
16 | - php-pear
17 | - php-pecl-apcu
18 | - php-xml
19 | - php-xmlrpc
20 | - php-pecl-yaml
21 |
--------------------------------------------------------------------------------
/provisioning/vars/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | _devtool_docroots:
3 | - "{{ adminer_install_dir }}"
4 | - "{{ php_xhprof_html_dir }}"
5 | - "{{ dashboard_install_dir|default('') }}"
6 |
7 | drupalvm_user: "{{ ansible_env.SUDO_USER | default(ansible_env.USER, true) | default(ansible_user_id, true) }}"
8 |
--------------------------------------------------------------------------------