Плейбук для настройки машины под mongo + redis + mysql Модерации (непродакшеновые)

Важно: запятая после хостнейма в командах существенна

0. Базовые настройки 

apt/sources.list.d
спецпользователи Директа и Модерации
самые нужные пакеты

ansible-playbook 1.basic.yaml -i <hostname>, -v


1. Zookeeper

# почти копия direct-zookeeper-non-production/zookeeper.*

установить пакеты и запустить zookeeper
ansible-playbook zookeeper.1.start-service.yaml -i lena-san-directmod3.haze.yandex.net, -v

CHECK:
echo 'ls /' | /usr/share/zookeeper/bin/zkCli.sh
echo 'create /testtest {"some_field":"some_value"}' | /usr/share/zookeeper/bin/zkCli.sh
echo 'get /testtest' | /usr/share/zookeeper/bin/zkCli.sh
echo 'set /testtest {"some_field":"some_other_value"}' | /usr/share/zookeeper/bin/zkCli.sh
echo 'get /testtest' | /usr/share/zookeeper/bin/zkCli.sh
echo 'delete /testtest' | /usr/share/zookeeper/bin/zkCli.sh

Или:
direct-zkcli ls /
direct-zkcli touch /testtest
direct-zkcli ls / |grep testtest
echo '{"some_field": "some_value" }' | direct-zkcli tee /testtest
direct-zkcli cat /testtest
echo '{"some_field":"some other value"}' | direct-zkcli tee /testtest
direct-zkcli cat /testtest
direct-zkcli rm /testtest
direct-zkcli ls / |grep testtest


2. Redis

ansible-playbook redis.1.start-service.yaml -i lena-san-directmod3.haze.yandex.net, -v


3. mongodb

ansible-playbook mongo.1.start-service.yaml -i lena-san-directmod3.haze.yandex.net, -v

mongos -- ?? в запущенной modbox его не было
инициализация данных -- ?? в репозитории не видно init_mongo


4. mysql

ansible-playbook mysql.1.start-service.yaml -i lena-san-directmod3.haze.yandex.net, -v
ansible-playbook mysql.1.start-service.yaml -i lena-san-directmod3.haze.yandex.net, -v

mysql для базы ТС (восстанавливаемой из бекапов), 1.basic.yaml тоже нужен:
ansible-playbook mysql.ts1.install-packages.yaml -i <hostname>, -v

5. Разное

Дополнительная настройка mongo (в будущем войдёт в плейбуку, а пока -- руками)
На каждом из шардов инициализировать replica set
mongo --port 27700 --eval 'printjson(rs.initiate({"_id":"rs0","members":[{"_id":1,"host":"127.0.0.1:27700"}]}))'
mongo --port 27701 --eval 'printjson(rs.initiate({"_id":"rs1","members":[{"_id":1,"host":"127.0.0.1:27701"}]}))'
mongo --port 27702 --eval 'printjson(rs.initiate({"_id":"rs2","members":[{"_id":1,"host":"127.0.0.1:27702"}]}))'

Подключиться к mongos (слушает на умолчательном 27017)
mongo --port 27017

добавить шарды

sh.addShard("rs0/127.0.0.1:27700")
sh.addShard("rs1/127.0.0.1:27701")
sh.addShard("rs2/127.0.0.1:27702")

добавить пользователя root
(https://docs.mongodb.com/v2.6/core/authentication/#localhost-exception)
use admin
db.createUser({user: "root", pwd: "password", roles: ["root"]})

потом перелогиниться рутом и добавить пользователя moddb
mongo -u root -p password --authenticationDatabase admin
db.createUser({user: "moddb", pwd: "password", roles: [{"role" : "dbOwner", "db" : "moddb"}]})
включить шардинг
sh.enableSharding("moddb")

Также надо добавть пользователя и гранты в mysql
grant all privileges on *.* to 'adiuser'@'%' identified by password '*61B8CBFAC6E1397C405D8AB745E3262EF58BE8EE';
