
用到了就总结下吧
常用到的指令查看ip是否可用ansible all -m Ping 执行ansible-playbook xxxx.yml 执行,查看日志输出ansible-playbook xxxx.yml -vvv 查看这个 playbook 的执行会影响到哪些 hostsansible-playbook playbook.yml --List-hostsansible了解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 将会从整个 playbook 的 rotation 中移除. 如果发生执行失败的情况,请修正 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=restartedHandlers 最佳的应用场景是用来重启服务,或者触发系统重启 *** 作.除此以外很少用到了.
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用来做变量的赋值。
- 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小结所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)