zeus
4 years ago
9 changed files with 265 additions and 0 deletions
@ -0,0 +1,15 @@ |
|||||
|
wRbjCxlrzEi3VzuR7Xe0/qMkxqRoBDmeUWfraYteInJEKisn7sVB01QtH3CfKTdn |
||||
|
ND8gKg+xzwwK4f7lkLzp9SyQqLWv/IZfBnUR9WZnlb64p9r9/uJpTJo0FUVB/vDD |
||||
|
kAs+bVcgFA1BsdoLMQW7AVycNo0uoLyd2nkM51J1XXqdMI+WAB/Dd3jVL9sY3NfJ |
||||
|
LGn9rNxmgnpUiKRAgob4w+D/V62NJr5q7+EOfR3/5xvkg1Wfn1p+sIJ8NFzZIKMg |
||||
|
MQux+e/F+J4IvXTc8+MdS5tCcZKOu1NVIR5i9i08utgqBKJmzTF5ebfCqoSYOppq |
||||
|
xpoHlzk9yLWus10szBImX4hDtoPyYEHztLW8ol6xsLv9TzNrCG82rP64bZub+hvO |
||||
|
GeyQwoRx52Nf5jWBvoMAOEjYRV4ZE3ghvA8quXAoh6kK9kKyQW5IbhGri87AadKs |
||||
|
++x2HEZHPUYaMnN16DbYY2LHLSyd5MGqbJxHXMBT3JSFS0jLYUjlRHCeHvTta8ud |
||||
|
WnKNdSg/NH7MSUQiWwLP3PVEsqFaP+d0BXzM8JNrawiBgUZZ2yCF4l9KbOib1G+1 |
||||
|
1Xkp0tjXS0K6s31rhZQJvEhTa3+dhH1D8IWRjcQ2axs3DllQ8bqa0hKtI5pndeLT |
||||
|
LK67d3bOyfkB/5UiLnbYgAO6b2CeSvrVpLJf6bH4MPbSTNf8lYXVxPt6p2qOWK9S |
||||
|
Oqb2ahu02TQmWTwLrqRX8Z9EChEbhggnL7I+TxOw3XcF3t3kAH/SPevU8ugNt00e |
||||
|
MIV15q5apokMA35b+z6VhzvcbQI2ypfKnqqdokkr91FlgS/bzWgMudf6JibqcWXA |
||||
|
tbvJjhod7aic8aNwwUMbWC2Mp9f2roWi2SAfQhKzxawFDWCw66XAAlD3LQKr0F+Y |
||||
|
1tAixQZFDDUhB3CRhyY6FAO8rNOCXvA6v16KvA== |
@ -0,0 +1,9 @@ |
|||||
|
set -Eeuo pipefail |
||||
|
|
||||
|
mongo -u "$MONGO_INITDB_ROOT_USERNAME" -p "$MONGO_INITDB_ROOT_PASSWORD" --authenticationDatabase admin "$MONGO_INITDB_DATABASE" <<EOF |
||||
|
db.createUser({ |
||||
|
user: '$MONGO_INITDB_USERNAME', |
||||
|
pwd: '$MONGO_INITDB_PASSWORD', |
||||
|
roles: [ { role: 'readWrite', db: '$MONGO_INITDB_DATABASE' } ] |
||||
|
}) |
||||
|
EOF |
@ -0,0 +1,44 @@ |
|||||
|
# mongod.conf |
||||
|
|
||||
|
# for documentation of all options, see: |
||||
|
# http://docs.mongodb.org/manual/reference/configuration-options/ |
||||
|
|
||||
|
# Where and how to store data. |
||||
|
storage: |
||||
|
dbPath: /data/db |
||||
|
journal: |
||||
|
enabled: true |
||||
|
# engine: |
||||
|
# mmapv1: |
||||
|
# wiredTiger: |
||||
|
|
||||
|
# where to write logging data. |
||||
|
systemLog: |
||||
|
destination: file |
||||
|
logAppend: true |
||||
|
path: /var/log/mongodb/mongod.log |
||||
|
|
||||
|
# network interfaces |
||||
|
# net: |
||||
|
# port: 27017 |
||||
|
# bindIp: 127.0.0.1 |
||||
|
|
||||
|
|
||||
|
# how the process runs |
||||
|
processManagement: |
||||
|
timeZoneInfo: /usr/share/zoneinfo |
||||
|
|
||||
|
security: |
||||
|
authorization: enabled |
||||
|
|
||||
|
#operationProfiling: |
||||
|
|
||||
|
#replication: |
||||
|
|
||||
|
#sharding: |
||||
|
|
||||
|
## Enterprise-Only Options: |
||||
|
|
||||
|
#auditLog: |
||||
|
|
||||
|
#snmp: |
@ -0,0 +1,15 @@ |
|||||
|
jr1tmf/cJ0Hd+cJd58uO23ltrAu+wk8ht2E9yN/dPK2aPzE+7DnzzH0QxR7P2Vbn |
||||
|
zEn9vvKoUkWis6HScQSwJlfaG+PsdNq8jutEjLXL8jvDqfebxybw0BEWfIx5If2A |
||||
|
rKk0IEPXzdVeQ+1CVEDe8NZ88W9T9ROj0K6Pr6uqFAO7LJP3ECd+Ao2EkUezXAED |
||||
|
17+ccDFOKeF4NYh9j2IAoADzD6v8OYHGYoYmZN2h/jHj/PglVjdwAAiPaOeQQvqP |
||||
|
zaPIakgV9H42mk/tTEvZLdr5/0/9tTwbub+Aas05Vfk5udxdWgoVB8KOCFReEOU/ |
||||
|
kruPBd/A9fFRo60ZH05fo9d/DHT67wqed323wdsdwJDu/204Td0jCeKvYQqcfSVd |
||||
|
WS4FIFkMqy/N90ARAnFsuCF8ZaUJUj7nA6xjzh4Hu6+163WRfxQ/4n8Et9QT8rFZ |
||||
|
x2MZZG01kzjZGJV1oHLuOB+zZCzAN+pNZn5+5xYUeLgCl3tw1v0KMeJOhgYpwoNA |
||||
|
zLmA2Fl34jkbGjjjwhjdhyk72RQeUx0m2dMSRv/p1x7gzPhqPvPbzNYn4K9tGjdS |
||||
|
yZqOqDcVEvVlRM+JH2U6yxPPV9qq10dxJKa+uSblPRJ0wxf/LVdYKtTCrFC8ZYce |
||||
|
LOpfJpAp/qwlkd13232r3radqwdw2d23e3sdqwdwR6leyHqMs8xJ9xNLXgrFjxhL |
||||
|
PXvv3NZCZtRDgTPxaDFPXQV2tb8bak3qA91hjzFT7PsC5wuzebWJnYGqcHIo5hpe |
||||
|
JCaBkb309QOx0HLt7vYNX4zdfstw+VaMcxooJAxc+VvxePSPRLDnN99SV92EpHMg |
||||
|
UH4YL8fGXhpnGzJ63VSYHS7D2RwZfXpP80vA0JBejSu6g1N1tjK2Ej09PM/g6k+5 |
||||
|
MR5elZtdX3GG480/4In8PUPpkzXE60BblEzyTQ== |
@ -0,0 +1,40 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
MONGODB1=mongo1 |
||||
|
MONGODB2=mongo2 |
||||
|
MONGODB3=mongo3 |
||||
|
|
||||
|
echo "**********************************************" ${MONGODB1} |
||||
|
echo "Waiting for startup.." |
||||
|
sleep 30 |
||||
|
echo "done" |
||||
|
|
||||
|
echo SETUP.sh time now: `date +"%T" ` |
||||
|
mongo --host ${MONGODB1}:27017 -u ${MONGO_INITDB_ROOT_USERNAME} -p ${MONGO_INITDB_ROOT_PASSWORD} <<EOF |
||||
|
var cfg = { |
||||
|
"_id": "rs0", |
||||
|
"protocolVersion": 1, |
||||
|
"version": 1, |
||||
|
"members": [ |
||||
|
{ |
||||
|
"_id": 0, |
||||
|
"host": "${MONGODB1}:27017", |
||||
|
"priority": 2 |
||||
|
}, |
||||
|
{ |
||||
|
"_id": 1, |
||||
|
"host": "${MONGODB2}:27017", |
||||
|
"priority": 0 |
||||
|
}, |
||||
|
{ |
||||
|
"_id": 2, |
||||
|
"host": "${MONGODB3}:27017", |
||||
|
"priority": 0, |
||||
|
} |
||||
|
] |
||||
|
}; |
||||
|
rs.initiate(cfg, { force: true }); |
||||
|
rs.secondaryOk(); |
||||
|
db.getMongo().setReadPref('primary'); |
||||
|
rs.status(); |
||||
|
EOF |
@ -0,0 +1,8 @@ |
|||||
|
# MongoDB |
||||
|
MONGO_URL=mongodb://mongodb:27017 |
||||
|
MONGO_INITDB_ROOT_USERNAME=swarmlab |
||||
|
MONGO_INITDB_ROOT_PASSWORD=swarmlab |
||||
|
MONGO_INITDB_DATABASE=app_swarmlab |
||||
|
MONGO_INITDB_USERNAME=app_swarmlab |
||||
|
MONGO_INITDB_PASSWORD=app_swarmlab |
||||
|
MONGO_REPLICA_SET_NAME=rs0 |
@ -0,0 +1,10 @@ |
|||||
|
|
||||
|
MONGO_INITDB_ROOT_USERNAME=swarmlab |
||||
|
MONGO_INITDB_ROOT_PASSWORD=swarmlab |
||||
|
MONGO_INITDB_DATABASE=app_swarmlab |
||||
|
MONGO_INITDB_USERNAME=app_swarmlab |
||||
|
MONGO_INITDB_PASSWORD=app_swarmlab |
||||
|
MONGO_REPLICA_SET_NAME=rs0 |
||||
|
|
||||
|
mongo "mongodb://localhost:30001,localhost:30002,localhost:30003/$MONGO_INITDB_DATABASE" -u $MONGO_INITDB_USERNAME |
||||
|
mongo "mongodb://localhost:30001,localhost:30002,localhost:30003/app_swarmlab" -u app_swarmlab |
@ -0,0 +1,116 @@ |
|||||
|
version: '3.8' |
||||
|
|
||||
|
services: |
||||
|
|
||||
|
# setup MongoDB cluster for production |
||||
|
mongo-replica-setup: |
||||
|
container_name: mongo-setup |
||||
|
image: 'mongo:4.2' |
||||
|
restart: on-failure |
||||
|
networks: |
||||
|
- netSwarmlabMongo |
||||
|
volumes: |
||||
|
- ./.docker/mongodb/scripts/mongosetup.sh:/scripts/mongosetup.sh |
||||
|
# entrypoint: ["bash"] |
||||
|
entrypoint: ["bash", "/scripts/mongosetup.sh" ] |
||||
|
env_file: |
||||
|
- .env |
||||
|
environment: |
||||
|
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} |
||||
|
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} |
||||
|
depends_on: |
||||
|
- mongo1 |
||||
|
- mongo2 |
||||
|
- mongo3 |
||||
|
|
||||
|
mongo1: |
||||
|
hostname: 'mongo1' |
||||
|
container_name: 'mongo1' |
||||
|
image: 'mongo:4.2' |
||||
|
restart: 'on-failure' |
||||
|
command: ["-f", "/etc/mongod.conf", "--keyFile", "/auth/file.key", "--replSet", "${MONGO_REPLICA_SET_NAME}", "--bind_ip_all"] |
||||
|
expose: |
||||
|
- 27017 |
||||
|
ports: |
||||
|
- 30001:27017 |
||||
|
networks: |
||||
|
- netSwarmlabMongo |
||||
|
volumes: |
||||
|
- mongoData1:/data/db |
||||
|
- mongoLog1:/var/log/mongodb |
||||
|
- ./.docker/mongodb/initdb.d/:/docker-entrypoint-initdb.d/ |
||||
|
- ./.docker/mongodb/mongod.conf:/etc/mongod.conf |
||||
|
- ./.docker/mongodb/file.key:/auth/file.key |
||||
|
healthcheck: |
||||
|
test: test $$(echo "rs.status().ok" | mongo -u $${MONGO_INITDB_ROOT_USERNAME} -p $${MONGO_INITDB_ROOT_PASSWORD} --quiet) -eq 1 |
||||
|
interval: 30s |
||||
|
start_period: 60s |
||||
|
env_file: |
||||
|
- .env |
||||
|
environment: |
||||
|
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} |
||||
|
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} |
||||
|
MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} |
||||
|
|
||||
|
mongo2: |
||||
|
hostname: 'mongo2' |
||||
|
container_name: 'mongo2' |
||||
|
image: 'mongo:4.2' |
||||
|
command: ["-f", "/etc/mongod.conf", "--keyFile", "/auth/file.key", "--replSet", "${MONGO_REPLICA_SET_NAME}", "--bind_ip_all"] |
||||
|
restart: 'on-failure' |
||||
|
expose: |
||||
|
- 27017 |
||||
|
ports: |
||||
|
- 30002:27017 |
||||
|
networks: |
||||
|
- netSwarmlabMongo |
||||
|
volumes: |
||||
|
- mongoData2:/data/db |
||||
|
- mongoLog2:/var/log/mongodb |
||||
|
- ./.docker/mongodb/mongod.conf:/etc/mongod.conf |
||||
|
- ./.docker/mongodb/file.key:/auth/file.key |
||||
|
env_file: |
||||
|
- .env |
||||
|
environment: |
||||
|
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} |
||||
|
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} |
||||
|
MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} |
||||
|
depends_on: |
||||
|
- mongo1 |
||||
|
|
||||
|
mongo3: |
||||
|
hostname: 'mongo3' |
||||
|
container_name: 'mongo3' |
||||
|
image: 'mongo:4.2' |
||||
|
command: ["-f", "/etc/mongod.conf", "--keyFile", "/auth/file.key", "--replSet", "${MONGO_REPLICA_SET_NAME}", "--bind_ip_all"] |
||||
|
restart: 'on-failure' |
||||
|
expose: |
||||
|
- 27017 |
||||
|
ports: |
||||
|
- 30003:27017 |
||||
|
networks: |
||||
|
- netSwarmlabMongo |
||||
|
volumes: |
||||
|
- mongoData3:/data/db |
||||
|
- mongoLog3:/var/log/mongodb |
||||
|
- ./.docker/mongodb/mongod.conf:/etc/mongod.conf |
||||
|
- ./.docker/mongodb/file.key:/auth/file.key |
||||
|
env_file: |
||||
|
- .env |
||||
|
environment: |
||||
|
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} |
||||
|
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} |
||||
|
MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} |
||||
|
depends_on: |
||||
|
- mongo1 |
||||
|
|
||||
|
volumes: |
||||
|
mongoData1: |
||||
|
mongoData2: |
||||
|
mongoData3: |
||||
|
mongoLog1: |
||||
|
mongoLog2: |
||||
|
mongoLog3: |
||||
|
|
||||
|
networks: |
||||
|
netSwarmlabMongo: |
@ -0,0 +1,8 @@ |
|||||
|
# MongoDB |
||||
|
MONGO_URL=mongodb://mongodb:27017 |
||||
|
MONGO_INITDB_ROOT_USERNAME=<root_username> |
||||
|
MONGO_INITDB_ROOT_PASSWORD=<root_password> |
||||
|
MONGO_INITDB_DATABASE=<app_db-name> |
||||
|
MONGO_INITDB_USERNAME=<app_username> |
||||
|
MONGO_INITDB_PASSWORD=<app_password> |
||||
|
MONGO_REPLICA_SET_NAME=rs0 |
Loading…
Reference in new issue