我正在使用ansible在mongodb中添加管理员用户..我使用了下面的剧本,但是我遇到了错误。有人能建议解决方案吗..我在添加用户之前也安装了pymongo,以便使用模块。mongod.conf中禁用了身份验证,bindIp设置为0.0.0.0
- hosts: devqa_mongod_single:dwprod_mongod_single
become: yes
tasks:
# volume config for mongodb
- name: Create a new xfs primary partition
community.general.parted:
device: /dev/nvme1n1
number: 1
state: present
fs_type: xfs
label: gpt
- name: Create an xfs filesystem on /dev/nvme1n1
community.general.filesystem:
fstype: xfs
state: present
dev: /dev/nvme1n1p1
- name: Create Directory /data/db
ansible.builtin.file:
path: /data/db
state: directory
owner: root
group: root
mode: 0751
- name: Fetch the UUID of /dev/nvme1n1p1
command: blkid -s UUID -o value /dev/nvme1n1p1
changed_when: false
register: blkid_out
- name: Mount /dev/nvme1n1 by UUID
ansible.posix.mount:
path: /data/db
src: UUID={{ blkid_out.stdout }}
fstype: xfs
opts: "defaults,nofail"
passno: 2
state: mounted
# Installation of mongodb
- name: Install aptitude using apt
apt:
name: aptitude
state: latest
update_cache: yes
- name: Import public key
apt_key:
url: 'https://www.mongodb.org/static/pgp/server-6.0.asc'
state: present
- name: Add repository
apt_repository:
filename: '/etc/apt/sources.list.d/mongodb-org-6.0.list'
repo: 'deb https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse'
state: present
update_cache: yes
- name: Install mongoDB
apt:
name: mongodb-org
state: present
update_cache: yes
- name: Ensure mongodb is running and and enabled to start automatically on reboots
service:
name: mongod
enabled: yes
state: started
# Installing pymongo to use community.mongodb.mongodb_user module
- name: "Install PyMongo"
apt:
update_cache: yes
name: "python3-pymongo"
state: "latest"
# copy config file
- name: user_init | set temporary conf
become: yes
timeout: 300
ansible.builtin.copy:
src: ../templates/mongodb/mongod_init.conf.j2
dest: /etc/mongod.conf
owner: root
group: root
mode: '0644'
notify:
- restart mongodb
# create mongoadmin user
- name: Create mongoadmin root user
#community.mongodb.mongodb_user:
mongodb_user:
login_port: 27017
database: "admin"
name: "mongoadmin"
password: "mongoadmin"
roles: "root"
#ignore_errors: yes
notify:
- restart mongodb
- name: conf | set
become: yes
timeout: 300
ansible.builtin.copy:
src: ../templates/mongodb/mongodb/mongod.conf.j2
dest: /etc/mongod.conf
owner: root
group: root
mode: '0644'
register: mongo_conf_set
notify:
- restart mongodb
- name: Copy mongodb config file for log rotation
become: yes
timeout: 300
ansible.builtin.copy:
src: ../templates/mongodb/mongodb
dest: /etc/logrotate.d/mongodb
owner: root
group: root
mode: 0644
- name: Create Directory /var/run/mongodb
ansible.builtin.file:
path: /var/run/mongodb
state: directory
owner: mongodb
group: mongodb
mode: 0751
notify:
- restart mongodb
- name: Recursively change ownership of a /data/db
ansible.builtin.file:
path: /data/db
state: directory
recurse: yes
owner: mongodb
group: mongodb
handlers:
- name: restart mongodb
service: name=mongod state=restarted
我收到以下错误
fatal: [devqa_mongod_single]: FAILED! => {"changed": false, "msg": "Unable to connect to database: Unknown option directconnection"}
2条答案
按热度按时间eyh26e7m1#
我认为您在主机上的配置设置有误。
无法连接到数据库:未知选项directconnection
我觉得这不像是Ansible的错误。
为了更进一步,您应该禁用mongo身份验证,并重新启动mongo。然后,创建3个用户,
admin
、root
和userAdminAnyDatabase
。然后重新启动mongo。下面是一个用于MongoDB的Ansible role I've written,您可以看看它是如何工作的。cs7cruho2#
我手动创建用户: