Я использую Ansible для настройки Vagrant VM, который на vagrant up
запускает mongoDB и создает базу данных и коллекцию, готовые для получения данных. Другой процесс будет записывать данные в коллекцию mongoDB. Вот отрывок из сборника пьес:Как создать коллекцию в mongoDB с помощью Ansible playbook?
- hosts: all
user: vagrant
sudo: True
tasks:
- name: install packages
action: apt update_cache=yes pkg={{item}} state=installed
with_items:
- mongodb
- service: name=mongodb state=started
- shell: mongo mydb --eval "db.createCollection('mycollection')"
пьес устанавливает и запускает службу MongoDB. Однако он не создает базу данных/коллекцию. Что-то не так с линией «- shell: mongo ...
». Он возвращает:
TASK: [shell mongo mydb --eval "db.createCollection('mycollection')"] ****
failed: [default] => {"changed": true, "cmd": "mongo mydb --eval\"db.createCollection('mycollection')\" ", "delta": "0:00:00.084196", "end": "2014-08-29 04:48:40.333460", "rc": 255, "start": "2014-08-29 04:48:40.249264"}
stderr: exception: connect failed
stdout: MongoDB shell version: 2.0.4
connecting to: mydb
Fri Aug 29 04:48:40 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
Вы видите, что я сделал неправильно?
Спасибо @tmruss. Он работает с оболочкой при входе в систему как тот же пользователь, что и Ansible. Это не работает из учебника. Я не уверен, как проверить журналы на виртуальной машине, потому что она не была обеспечена из-за ошибки. –
@AlexWoolford, может быть, я не понимаю - если вы можете протестировать его из оболочки, вы должны иметь доступ к журналам mongo? – tmruss
Несколько других предложений: - Убедитесь, что у вас есть bind_ip = 127.0.0.1 в файле конфига mongo (помещается туда вами или недоступным/Providers) - Некоторым людям повезло удалить файл блокировки, но я сомневаюсь, что это проблема в вашем случае, так как она является бродягой vm: http://stackoverflow.com/questions/5726032/ – tmruss