Add all files needed to bring up VM and run agaric.com locally
This commit is contained in:
parent
52c8b60bac
commit
4d2bc0ee24
742 changed files with 24037 additions and 0 deletions
box/provisioning/roles/geerlingguy.elasticsearch
49
box/provisioning/roles/geerlingguy.elasticsearch/.travis.yml
Normal file
49
box/provisioning/roles/geerlingguy.elasticsearch/.travis.yml
Normal file
|
@ -0,0 +1,49 @@
|
|||
---
|
||||
services: docker
|
||||
|
||||
env:
|
||||
- distro: centos7
|
||||
init: /usr/lib/systemd/systemd
|
||||
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
||||
- distro: ubuntu1604
|
||||
init: /lib/systemd/systemd
|
||||
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
||||
- distro: ubuntu1404
|
||||
init: /sbin/init
|
||||
run_opts: ""
|
||||
- distro: ubuntu1204
|
||||
init: /sbin/init
|
||||
run_opts: ""
|
||||
|
||||
before_install:
|
||||
# Pull container.
|
||||
- 'docker pull geerlingguy/docker-${distro}-ansible:latest'
|
||||
|
||||
script:
|
||||
- container_id=$(mktemp)
|
||||
# Run container in detached state.
|
||||
- 'docker run --detach --volume="${PWD}":/etc/ansible/roles/role_under_test:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"'
|
||||
|
||||
# Install dependencies.
|
||||
- 'docker exec "$(cat ${container_id})" ansible-galaxy install -r /etc/ansible/roles/role_under_test/tests/requirements.yml'
|
||||
|
||||
# Ansible syntax check.
|
||||
- 'docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml --syntax-check'
|
||||
|
||||
# Test role.
|
||||
- 'docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml'
|
||||
|
||||
# Test role idempotence.
|
||||
- idempotence=$(mktemp)
|
||||
- docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml | tee -a ${idempotence}
|
||||
- >
|
||||
tail ${idempotence}
|
||||
| grep -q 'changed=0.*failed=0'
|
||||
&& (echo 'Idempotence test: pass' && exit 0)
|
||||
|| (echo 'Idempotence test: fail' && exit 1)
|
||||
|
||||
# Test if Elasticsearch is working.
|
||||
- 'docker exec --tty "$(cat ${container_id})" env TERM=xterm curl -XGET localhost:9200'
|
||||
|
||||
notifications:
|
||||
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
44
box/provisioning/roles/geerlingguy.elasticsearch/README.md
Normal file
44
box/provisioning/roles/geerlingguy.elasticsearch/README.md
Normal file
|
@ -0,0 +1,44 @@
|
|||
# Ansible Role: Elasticsearch
|
||||
|
||||
[](https://travis-ci.org/geerlingguy/ansible-role-elasticsearch)
|
||||
|
||||
An Ansible Role that installs Elasticsearch on RedHat/CentOS or Debian/Ubuntu.
|
||||
|
||||
## Requirements
|
||||
|
||||
Requires at least Java 7 (Java 8+ preferred). See [`geerlingguy.java`](https://github.com/geerlingguy/ansible-role-java#example-playbook-install-openjdk-8) role instructions for installing OpenJDK 8.
|
||||
|
||||
## Role Variables
|
||||
Available variables are listed below, along with default values (see `defaults/main.yml`):
|
||||
|
||||
elasticsearch_network_host: localhost
|
||||
|
||||
Network host to listen for incoming connections on. By default we only listen on the localhost interface. Change this to the IP address to listen on a specific interface, or `0.0.0.0` to listen on all interfaces.
|
||||
|
||||
elasticsearch_http_port: 9200
|
||||
|
||||
The port to listen for HTTP connections on.
|
||||
|
||||
elasticsearch_script_inline: true
|
||||
elasticsearch_script_indexed: true
|
||||
|
||||
Whether to allow inline scripting against ElasticSearch. You should read the following link as there are possible security implications for enabling these options: [Enable Dynamic Scripting](https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html#enable-dynamic-scripting). Available options include: `true`, `false`, and `sandbox`.
|
||||
|
||||
## Dependencies
|
||||
|
||||
- geerlingguy.java
|
||||
|
||||
## Example Playbook
|
||||
|
||||
- hosts: search
|
||||
roles:
|
||||
- geerlingguy.java
|
||||
- geerlingguy.elasticsearch
|
||||
|
||||
## License
|
||||
|
||||
MIT / BSD
|
||||
|
||||
## Author Information
|
||||
|
||||
This role was created in 2014 by [Jeff Geerling](http://www.jeffgeerling.com/), author of [Ansible for DevOps](https://www.ansiblefordevops.com/).
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
elasticsearch_network_host: localhost
|
||||
elasticsearch_http_port: 9200
|
||||
elasticsearch_script_inline: true
|
||||
elasticsearch_script_indexed: true
|
|
@ -0,0 +1,6 @@
|
|||
[elasticsearch-2.x]
|
||||
name=Elasticsearch repository for 2.x packages
|
||||
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
|
||||
gpgcheck=1
|
||||
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
|
||||
enabled=1
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
- name: restart elasticsearch
|
||||
service: name=elasticsearch state=restarted
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
dependencies:
|
||||
- geerlingguy.java
|
||||
|
||||
galaxy_info:
|
||||
author: geerlingguy
|
||||
description: Elasticsearch for Linux.
|
||||
company: "Midwestern Mac, LLC"
|
||||
license: "license (BSD, MIT)"
|
||||
min_ansible_version: 1.8
|
||||
platforms:
|
||||
- name: EL
|
||||
versions:
|
||||
- all
|
||||
- name: Debian
|
||||
versions:
|
||||
- all
|
||||
- name: Ubuntu
|
||||
versions:
|
||||
- all
|
||||
galaxy_tags:
|
||||
- web
|
||||
- system
|
||||
- monitoring
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
- include: setup-RedHat.yml
|
||||
when: ansible_os_family == 'RedHat'
|
||||
|
||||
- include: setup-Debian.yml
|
||||
when: ansible_os_family == 'Debian'
|
||||
|
||||
- name: Configure Elasticsearch.
|
||||
template:
|
||||
src: elasticsearch.yml.j2
|
||||
dest: /etc/elasticsearch/elasticsearch.yml
|
||||
owner: root
|
||||
group: elasticsearch
|
||||
mode: 0750
|
||||
notify: restart elasticsearch
|
||||
|
||||
- name: Start Elasticsearch.
|
||||
service: name=elasticsearch state=started enabled=yes
|
||||
|
||||
- name: Make sure Elasticsearch is running before proceeding.
|
||||
wait_for: host={{ elasticsearch_network_host }} port={{ elasticsearch_http_port }} delay=3 timeout=300
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
- name: Add Elasticsearch apt key.
|
||||
apt_key:
|
||||
url: https://packages.elastic.co/GPG-KEY-elasticsearch
|
||||
state: present
|
||||
|
||||
- name: Add Elasticsearch repository.
|
||||
apt_repository:
|
||||
repo: 'deb http://packages.elastic.co/elasticsearch/2.x/debian stable main'
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
- name: Install Elasticsearch.
|
||||
apt: pkg=elasticsearch state=present
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
- name: Add Elasticsearch GPG key.
|
||||
rpm_key:
|
||||
key: https://packages.elastic.co/GPG-KEY-elasticsearch
|
||||
state: present
|
||||
|
||||
- name: Add Elasticsearch repository.
|
||||
copy:
|
||||
src: elasticsearch.repo
|
||||
dest: /etc/yum.repos.d/elasticsearch.repo
|
||||
mode: 0644
|
||||
|
||||
- name: Install Elasticsearch.
|
||||
yum: pkg=elasticsearch state=installed
|
|
@ -0,0 +1,97 @@
|
|||
# {{ ansible_managed }}
|
||||
# ======================== Elasticsearch Configuration =========================
|
||||
#
|
||||
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
|
||||
# Before you set out to tweak and tune the configuration, make sure you
|
||||
# understand what are you trying to accomplish and the consequences.
|
||||
#
|
||||
# The primary way of configuring a node is via this file. This template lists
|
||||
# the most important settings you may want to configure for a production cluster.
|
||||
#
|
||||
# Please see the documentation for further information on configuration options:
|
||||
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html>
|
||||
#
|
||||
# ---------------------------------- Cluster -----------------------------------
|
||||
#
|
||||
# Use a descriptive name for your cluster:
|
||||
#
|
||||
# cluster.name: my-application
|
||||
#
|
||||
# ------------------------------------ Node ------------------------------------
|
||||
#
|
||||
# Use a descriptive name for the node:
|
||||
#
|
||||
# node.name: node-1
|
||||
#
|
||||
# Add custom attributes to the node:
|
||||
#
|
||||
# node.rack: r1
|
||||
#
|
||||
# ----------------------------------- Paths ------------------------------------
|
||||
#
|
||||
# Path to directory where to store the data (separate multiple locations by comma):
|
||||
#
|
||||
# path.data: /path/to/data
|
||||
#
|
||||
# Path to log files:
|
||||
#
|
||||
# path.logs: /path/to/logs
|
||||
#
|
||||
# ----------------------------------- Memory -----------------------------------
|
||||
#
|
||||
# Lock the memory on startup:
|
||||
#
|
||||
# bootstrap.mlockall: true
|
||||
#
|
||||
# Make sure that the `ES_HEAP_SIZE` environment variable is set to about half the memory
|
||||
# available on the system and that the owner of the process is allowed to use this limit.
|
||||
#
|
||||
# Elasticsearch performs poorly when the system is swapping the memory.
|
||||
#
|
||||
# ---------------------------------- Network -----------------------------------
|
||||
#
|
||||
# Set the bind address to a specific IP (IPv4 or IPv6):
|
||||
#
|
||||
network.host: {{ elasticsearch_network_host }}
|
||||
#
|
||||
# Set a custom port for HTTP:
|
||||
#
|
||||
http.port: {{ elasticsearch_http_port }}
|
||||
#
|
||||
# For more information, see the documentation at:
|
||||
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html>
|
||||
#
|
||||
# --------------------------------- Discovery ----------------------------------
|
||||
#
|
||||
# Pass an initial list of hosts to perform discovery when new node is started:
|
||||
# The default list of hosts is ["127.0.0.1", "[::1]"]
|
||||
#
|
||||
# discovery.zen.ping.unicast.hosts: ["host1", "host2"]
|
||||
#
|
||||
# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
|
||||
#
|
||||
# discovery.zen.minimum_master_nodes: 3
|
||||
#
|
||||
# For more information, see the documentation at:
|
||||
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery.html>
|
||||
#
|
||||
# ---------------------------------- Gateway -----------------------------------
|
||||
#
|
||||
# Block initial recovery after a full cluster restart until N nodes are started:
|
||||
#
|
||||
# gateway.recover_after_nodes: 3
|
||||
#
|
||||
# For more information, see the documentation at:
|
||||
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway.html>
|
||||
#
|
||||
# ---------------------------------- Various -----------------------------------
|
||||
#
|
||||
# Disable starting multiple nodes on a single system:
|
||||
#
|
||||
# node.max_local_storage_nodes: 1
|
||||
#
|
||||
# Require explicit names when deleting indices:
|
||||
#
|
||||
# action.destructive_requires_name: true
|
||||
script.inline: {{ elasticsearch_script_inline }}
|
||||
script.indexed: {{ elasticsearch_script_indexed }}
|
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
- src: geerlingguy.java
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
- hosts: all
|
||||
|
||||
pre_tasks:
|
||||
- name: Update apt cache.
|
||||
apt: update_cache=yes cache_valid_time=600
|
||||
when: ansible_os_family == 'Debian'
|
||||
changed_when: false
|
||||
|
||||
- name: Ensure build dependencies are installed.
|
||||
package: name=curl state=present
|
||||
|
||||
roles:
|
||||
- geerlingguy.java
|
||||
- role_under_test
|
Loading…
Add table
Add a link
Reference in a new issue