Ansible 之 ansible-playbook基础入门例子
16lz
2021-01-22
一、通过playbook安装与设置zookeeper
--- #必须字段,类同于#/bin/bash- hosts: test #远程操作主机 remote_user: cedar #远程操作用户 become: yes #是否sudo tasks: - name: "安装zookeeper" #任务命名 command: yum -y install mesosphere-zookeeper #远程执行命令安装zook - name: "启动zookeeper" #任务命名 service: #service模块 name: zookeeper #服务名zookeeper state: started #动作started - name: "设置开机启动" #任务命名 service: #service模块 name: zookeeper #服务名zookeeper enabled: yes #enabled参数为YES开机启动
二、验证结果
[root@Ansible playbook]# ansible-playbook test.yaml PLAY [test] *****************************************************************************************************************************************************TASK [Gathering Facts] ******************************************************************************************************************************************ok: [10.3.153.8]TASK [安装zookeeper] **********************************************************************************************************************************************[WARNING]: Consider using the yum module rather than running 'yum'. If you need to use command because yum is insufficient you can add 'warn: false' to thiscommand task or set 'command_warnings=False' in ansible.cfg to get rid of this message.changed: [10.3.153.8]TASK [启动zookeeper] **********************************************************************************************************************************************changed: [10.3.153.8]TASK [设置开机启动] ***************************************************************************************************************************************************ok: [10.3.153.8]PLAY RECAP ******************************************************************************************************************************************************10.3.153.8 : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 You have new mail in /var/spool/mail/root[root@Ansible playbook]# ansible test -m command -a "systemctl status zookeeper" -u cedar -b10.3.153.8 | CHANGED | rc=0 >>● zookeeper.service - Apache ZooKeeper Loaded: loaded (/usr/lib/systemd/system/zookeeper.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2021-01-20 03:19:35 EST; 49s ago Main PID: 11518 (java) CGroup: /system.slice/zookeeper.service └─11518 java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /opt/mesosphere/zookeeper/bin/../build/classes:/opt/mesosphere/zookeeper/bin/../build/lib/*.jar:/opt/mesosphere/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/mesosphere/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/opt/mesosphere/zookeeper/bin/../lib/netty-3.7.0.Final.jar:/opt/mesosphere/zookeeper/bin/../lib/log4j-1.2.16.jar:/opt/mesosphere/zookeeper/bin/../lib/jline-0.9.94.jar:/opt/mesosphere/zookeeper/bin/../zookeeper-3.4.6.jar:/opt/mesosphere/zookeeper/bin/../src/java/lib/*.jar:/etc/zookeeper/conf: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/conf/zoo.cfgJan 20 03:19:53 ansible-test zookeeper[11518]: 2021-01-20 03:19:53,010 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1007] - Closed socket connection for client /10.3.151.86:41692 which had sessionid 0x1771ee0aca90000Jan 20 03:19:53 ansible-test zookeeper[11518]: 2021-01-20 03:19:53,018 [myid:] - ERROR [SyncThread:0:NIOServerCnxn@178] - Unexpected Exception:Jan 20 03:19:53 ansible-test zookeeper[11518]: java.nio.channels.CancelledKeyExceptionJan 20 03:19:53 ansible-test zookeeper[11518]: at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:73)Jan 20 03:19:53 ansible-test zookeeper[11518]: at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:77)Jan 20 03:19:53 ansible-test zookeeper[11518]: at org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:151)Jan 20 03:19:53 ansible-test zookeeper[11518]: at org.apache.zookeeper.server.NIOServerCnxn.sendResponse(NIOServerCnxn.java:1081)Jan 20 03:19:53 ansible-test zookeeper[11518]: at org.apache.zookeeper.server.FinalRequestProcessor.proce***equest(FinalRequestProcessor.java:404)Jan 20 03:19:53 ansible-test zookeeper[11518]: at org.apache.zookeeper.server.SyncRequestProcessor.flush(SyncRequestProcessor.java:200)Jan 20 03:19:53 ansible-test zookeeper[11518]: at org.apache.zookeeper.server.SyncRequestProcessor.run(SyncRequestProcessor.java:131)[root@Ansible playbook]# ansible test -m command -a "systemctl list-unit-files" -u cedar -b | grep zookeeperzookeeper.service enabled You have new mail in /var/spool/mail/root[root@Ansible playbook]#
三、帮助文档参考
1、tasks下的内容,均为ansible对应的模块的功能使用,我们可以通过ansible-doc文档去查看每个模块的使用帮助文档与参数描述,如:ansible-doc service。
四、Playbook 与 Shell 脚本差异对比
当我们把shell脚本转换为Playbook运行的时候,Ansible 会留下清晰的执行痕迹,明确告诉我们在每一台主机上的每一步都做了什么。同时,Ansible 自带幂等判断机制也为运维省去不少伤脑费心的人脑逻辑判断运算。当我们重复执行一个Playbook时,当Ansible发现系统的现有状态与Playbook所定义的将要实现的状态一致时,Ansible 将自动跳过该操作。
©著作权归作者所有:来自51CTO博客作者wx592bc92b285c7的原创作品,如需转载,请注明出处,否则将追究法律责任好知识,才能预见未来
赞赏
0人进行了赞赏支持
更多相关文章
- 假期玩得开心也不忘充电,学习Python操作JSON,网络数据交换不用愁
- LeetCode 题解:一顿操作猛如虎,一看击败百分五
- 如何设计一个支持增量操作的栈
- 对列和行的操作
- 从一道简单算法题理解快速排序的 partition 操作
- 玩转 Pandas 的 Groupby 操作
- 13个知识点,系统整理Python时间处理模块Datetime
- GitHub的注册,代码仓库的创建,用小乌龟上传代码(个人认为比较适合新
- 零基础学习Python列表操作