fixed communications between containers
This commit is contained in:
parent
8bfe42cf86
commit
0e24c57fc6
13
Pipfile
13
Pipfile
@ -14,19 +14,12 @@ molecule = "==2.20.2"
|
|||||||
python_version = "2.7"
|
python_version = "2.7"
|
||||||
|
|
||||||
[scripts]
|
[scripts]
|
||||||
# Normal Case
|
test ="molecule test --destroy=never"
|
||||||
test ="molecule test"
|
|
||||||
agent ="molecule test -s wazuh-agent"
|
agent ="molecule test -s wazuh-agent"
|
||||||
elasticsearch ="molecule test -s elasticsearch"
|
elasticsearch ="molecule test -s elasticsearch --destroy=never"
|
||||||
filebeat ="molecule test -s filebeat"
|
filebeat ="molecule test -s filebeat"
|
||||||
kibana ="molecule test -s kibana"
|
kibana ="molecule test -s kibana"
|
||||||
|
|
||||||
# Do Not destroy the created containers afte the test execution ends.
|
|
||||||
test_still ="molecule test --destroy=never"
|
|
||||||
agent_still ="molecule test -s wazuh-agent --destroy=never"
|
|
||||||
elasticsearch_still ="molecule test -s elasticsearch --destroy=never"
|
|
||||||
filebeat_still ="molecule test -s filebeat --destroy=never"
|
|
||||||
kibana_still ="molecule test -s kibana --destroy=never"
|
|
||||||
|
|
||||||
# Destroy all the existing containers ' Created by Molecule '
|
# Destroy all the existing containers ' Created by Molecule '
|
||||||
|
destroy_elasticsearch ="molecule destroy -s elasticsearch"
|
||||||
destroy ="molecule destroy"
|
destroy ="molecule destroy"
|
||||||
|
|||||||
@ -44,16 +44,15 @@
|
|||||||
|
|
||||||
- name: Create docker network(s)
|
- name: Create docker network(s)
|
||||||
docker_network:
|
docker_network:
|
||||||
name: "{{ item }}"
|
name: "new_network"
|
||||||
docker_host: "{{ item.docker_host | default('unix://var/run/docker.sock') }}"
|
|
||||||
state: present
|
state: present
|
||||||
with_items: "{{ molecule_yml.platforms | molecule_get_docker_networks }}"
|
|
||||||
|
|
||||||
- name: Create molecule instance(s)
|
- name: Create molecule instance(s)
|
||||||
docker_container:
|
docker_container:
|
||||||
name: "manager"
|
name: "{{ item.name }}"
|
||||||
docker_host: "{{ item.docker_host | default('unix://var/run/docker.sock') }}"
|
docker_host: "{{ item.docker_host | default('unix://var/run/docker.sock') }}"
|
||||||
hostname: "manager"
|
hostname: "{{ item.name }}"
|
||||||
image: "molecule_local/{{ item.image }}"
|
image: "molecule_local/{{ item.image }}"
|
||||||
state: started
|
state: started
|
||||||
recreate: false
|
recreate: false
|
||||||
@ -65,7 +64,8 @@
|
|||||||
exposed_ports: "{{ item.exposed_ports | default(omit) }}"
|
exposed_ports: "{{ item.exposed_ports | default(omit) }}"
|
||||||
published_ports: "{{ item.published_ports | default(omit) }}"
|
published_ports: "{{ item.published_ports | default(omit) }}"
|
||||||
ulimits: "{{ item.ulimits | default(omit) }}"
|
ulimits: "{{ item.ulimits | default(omit) }}"
|
||||||
networks: "{{ item.networks | default(omit) }}"
|
networks:
|
||||||
|
- name: "new_network"
|
||||||
dns_servers: "{{ item.dns_servers | default(omit) }}"
|
dns_servers: "{{ item.dns_servers | default(omit) }}"
|
||||||
register: server
|
register: server
|
||||||
with_items: "{{ molecule_yml.platforms }}"
|
with_items: "{{ molecule_yml.platforms }}"
|
||||||
@ -78,4 +78,4 @@
|
|||||||
register: docker_jobs
|
register: docker_jobs
|
||||||
until: docker_jobs.finished
|
until: docker_jobs.finished
|
||||||
retries: 300
|
retries: 300
|
||||||
with_items: "{{ server.results }}"
|
with_items: "{{ server.results }}"
|
||||||
@ -7,7 +7,7 @@ lint:
|
|||||||
name: yamllint
|
name: yamllint
|
||||||
enabled: false
|
enabled: false
|
||||||
platforms:
|
platforms:
|
||||||
- name: bionic
|
- name: manager
|
||||||
image: solita/ubuntu-systemd:bionic
|
image: solita/ubuntu-systemd:bionic
|
||||||
command: /sbin/init
|
command: /sbin/init
|
||||||
ulimits:
|
ulimits:
|
||||||
|
|||||||
@ -3,4 +3,5 @@
|
|||||||
hosts: all
|
hosts: all
|
||||||
roles:
|
roles:
|
||||||
- role: wazuh/ansible-wazuh-manager
|
- role: wazuh/ansible-wazuh-manager
|
||||||
|
- { role: wazuh/ansible-filebeat, filebeat_output_elasticsearch_hosts: 'elasticsearch:9200' }
|
||||||
|
|
||||||
|
|||||||
@ -9,13 +9,14 @@ lint:
|
|||||||
config-data:
|
config-data:
|
||||||
ignore: .virtualenv
|
ignore: .virtualenv
|
||||||
platforms:
|
platforms:
|
||||||
#- name: bionic
|
- name: elasticsearch
|
||||||
# image: solita/ubuntu-systemd:bionic
|
image: solita/ubuntu-systemd:bionic
|
||||||
# command: /sbin/init
|
command: /sbin/init
|
||||||
# ulimits:
|
ulimits:
|
||||||
# - nofile:262144:262144
|
- nofile:262144:262144
|
||||||
# privileged: true
|
privileged: true
|
||||||
# memory_reservation: 2048m
|
memory_reservation: 2048m
|
||||||
|
|
||||||
#- name: xenial
|
#- name: xenial
|
||||||
# image: solita/ubuntu-systemd:xenial
|
# image: solita/ubuntu-systemd:xenial
|
||||||
# privileged: true
|
# privileged: true
|
||||||
@ -35,12 +36,12 @@ platforms:
|
|||||||
# memory_reservation: 2048m
|
# memory_reservation: 2048m
|
||||||
# ulimits:
|
# ulimits:
|
||||||
# - nofile:262144:262144
|
# - nofile:262144:262144
|
||||||
- name: centos7
|
#- name: centos7
|
||||||
image: milcom/centos7-systemd
|
# image: milcom/centos7-systemd
|
||||||
memory_reservation: 2048m
|
# memory_reservation: 2048m
|
||||||
privileged: true
|
# privileged: true
|
||||||
ulimits:
|
# ulimits:
|
||||||
- nofile:262144:262144
|
# - nofile:262144:262144
|
||||||
provisioner:
|
provisioner:
|
||||||
name: ansible
|
name: ansible
|
||||||
playbooks:
|
playbooks:
|
||||||
|
|||||||
@ -3,4 +3,4 @@
|
|||||||
hosts: all
|
hosts: all
|
||||||
roles:
|
roles:
|
||||||
- role: elastic-stack/ansible-elasticsearch
|
- role: elastic-stack/ansible-elasticsearch
|
||||||
elasticsearch_network_host: 'localhost'
|
elasticsearch_network_host: 'elasticsearch'
|
||||||
|
|||||||
41
update-dnsmasq.sh
Normal file
41
update-dnsmasq.sh
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 10 seconds interval time by default
|
||||||
|
INTERVAL=${INTERVAL:-10}
|
||||||
|
|
||||||
|
# dnsmasq config directory
|
||||||
|
DNSMASQ_CONFIG=${DNSMASQ_CONFIG:-.}
|
||||||
|
|
||||||
|
# commands used in this script
|
||||||
|
DOCKER=${DOCKER:-docker}
|
||||||
|
SLEEP=${SLEEP:-sleep}
|
||||||
|
TAIL=${TAIL:-tail}
|
||||||
|
|
||||||
|
declare -A service_map
|
||||||
|
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
changed=false
|
||||||
|
while read line
|
||||||
|
do
|
||||||
|
name=${line##* }
|
||||||
|
ip=$(${DOCKER} inspect --format '{{.NetworkSettings.IPAddress}}' $name)
|
||||||
|
# if IP addr changed
|
||||||
|
if [ -z ${service_map[$name]} ] || [ ${service_map[$name]} != $ip ]
|
||||||
|
then
|
||||||
|
service_map[$name]=$ip
|
||||||
|
# write to file
|
||||||
|
echo $name has a new IP Address $ip >&2
|
||||||
|
echo "host-record=$name,$ip" > "${DNSMASQ_CONFIG}/docker-$name"
|
||||||
|
changed=true
|
||||||
|
fi
|
||||||
|
done < <(${DOCKER} ps | ${TAIL} -n +2)
|
||||||
|
|
||||||
|
# a change of IP address occured, restart dnsmasq
|
||||||
|
if [ $changed = true ]
|
||||||
|
then
|
||||||
|
systemctl restart dnsmasq
|
||||||
|
fi
|
||||||
|
|
||||||
|
${SLEEP} $INTERVAL
|
||||||
|
done
|
||||||
Loading…
Reference in New Issue
Block a user