ansible使用,搭建mongo的replica-set小结

ansible使用,搭建mongo的replica-set小结,第1张

概述ansible 前言 常用到的指令 查看ip是否可用 执行 执行,查看日志输出 查看这个 playbook 的执行会影响到哪些 hosts 设置服务器免密登录 ansible了解 变量名的使用 pla ansible前言常用到的指令查看ip是否可用执行执行,查看日志输出查看这个 playbook 的执行会影响到哪些 hosts设置服务器免密登录ansible了解变量名的使用playbooks了解Handlerstaskregister使用set_fact使用ansible构建mongo的replicasetansible前言

用到了就总结下吧

常用到的指令查看ip是否可用
ansible all -m Ping 
执行
ansible-playbook xxxx.yml  
执行,查看日志输出
ansible-playbook xxxx.yml -vvv 
查看这个 playbook 的执行会影响到哪些 hosts
ansible-playbook playbook.yml --List-hosts
ansible了解

Ansible是使用Python开发的自动化运维工具,如果这么说比较抽象的话,那么可以说Ansible可以让服务器管理人员使用文本来管理服务器,编写一段配置文件,在不同的机器上执行。

Ansible的使用需要在目标服务器上添加自己电脑的公钥,设置免密登录。

设置服务器免密登录

添加本机的pub,公钥到目标服务器~/.ssh/authorized_keys中,然后设置权限chmod 600 /root/.ssh/authorized_keys

变量名的使用

在使用变量之前最好先知道什么是合法的变量名. 变量名可以为字母,数字以及下划线.变量始终应该以字母开头. “foo_port”是个合法的变量名.”foo5”也是. “foo-port”,“foo port”,“foo.port” 和 “12”则不是合法的变量名.

playbooks了解

Playbooks可用于声明配置,更强大的地方在于,在 playbooks 中可以编排有序的执行过程,甚至于做到在多组机器间,来回有序的执行特别指定的步骤.并且可以同步或异步的发起任务.

在运行 playbook 时(从上到下执行),如果一个 host 执行 task 失败,这个 host 将会从整个 playbookrotation 中移除. 如果发生执行失败的情况,请修正 playbook 中的错误,然后重新执行即可.

modules 具有”幂等”性.重复多次执行playbook是安全的。

比如对于创建文件夹,如果不存在就创建,存在了就不创建了。

@H_301_132@Handlers

在发生改变时执行的 *** 作

Handlers 也是一些 task 的列表,通过名字来引用,它们和一般的 task 并没有什么区别.Handlers 是由通知者进行 notify,如果没有被 notify,handlers 不会执行.不管有多少个通知者进行了 notify,等到 play 中的所有 task 执行完成之后,handlers 也只会被执行一次.

handlers:    - name: restart memcached      service:  name=memcached state=restarted    - name: restart apache      service: name=apache state=restarted

Handlers 最佳的应用场景是用来重启服务,或者触发系统重启 *** 作.除此以外很少用到了.

task

对于playbook,我们一般使用 include 语句引用 task 文件的方法,将playbook进行拆分。

register使用

register的作用一般用于获取命令输出和判断执行是否成功。

register可以存储指定命令的输出结果到一个自定义的变量中,我们可以通过访问这个自定义的变量来获取命令的输出,然后判断是否执行成功。

- name: Check than logfile exists  stat: path={{ DATA_PATH }}/mongos/log/mongo.log  register: logfile_start  when: MONGO_SYSYTEMLOG_DESTIANTION == "file"- name: Create log if missing  file:    state: touch    dest: "{{ DATA_PATH }}/mongos/log/mongo.log"    owner: mongod    group: mongod    mode: 0644  when: ( MONGO_SYSYTEMLOG_DESTIANTION == "file"        and logfile_start is defined        and not logfile_start.stat.exists )

通过判断logfile_start来判断目标目录是否存在。

set_fact使用

set_fact用来做变量的赋值。

- name: 注册replicaset_host变量  set_fact:    replicaset_host: []- name: 循环处理host  set_fact:    replicaset_host: "{{replicaset_host}} + [ '{{ item }}:{{ MONGO_NET_PORT }}' ]"  with_items: "{{ groups['mongo'] }}"

比如上面注册了一个replicaset_host数组,下面通过with_items循环对replicaset_host进行了赋值 *** 作,之后后面的task就可以直接使用这个变量了。

- name: 初始化副本集  mongodb_replicaset:    login_host: localhost    login_port: "{{ MONGO_NET_PORT }}"    login_user: "{{ MONGO_ROOT_USERname }}"    login_password: "{{ MONGO_ROOT_PASSWORD }}"    replica_set: mongos    members: "{{ replicaset_host }}"
ansible构建mongo的replicaset

构建的思路:

1、通过rpm安装mongo的包,然后安装依赖的程序
2、配置mongo.service
3、配置mongo.conf,初始化的mongo是没有账号密码的,所以先初始化一个无需验证的mongo.conf。配置好之后,重启服务。
4、设置登录的账号密码,之后修改mongo.conf为需要认证的。重启服务。
5、初始化副本集,设置开机启动。

项目结构:

.├── deploy-mongo.yml└── roles    └── mongo        ├── defaults  // 一些配置信息        │   └── main.yml        ├── files  // mongo的安装包        │   └── rpms        │       ├── mongodb-org-unstable-mongos-4.1.8-1.el7.x86_64.rpm        │       ├── mongodb-org-unstable-server-4.1.8-1.el7.x86_64.rpm        │       ├── mongodb-org-unstable-shell-4.1.8-1.el7.x86_64.rpm        │       └── mongodb-org-unstable-tools-4.1.8-1.el7.x86_64.rpm        ├── handlers // notify重启服务的task        │   └── main.yml        ├── tasks        │   ├── auth_initialization.yml        │   ├── authorization.yml        │   ├── configure.yml        │   ├── init_replicaset.yml        │   ├── install_task.yml        │   └── main.yml        └── templates            ├── mongodb.service.j2            └── mongod.conf.j2

项目的地址[https://github.com/boilingfrog/ansible-mongo-replicaset-role]

总结

以上是内存溢出为你收集整理的ansible使用,搭建mongo的replica-set小结全部内容,希望文章能够帮你解决ansible使用,搭建mongo的replica-set小结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/1014154.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存