![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ansible
chaodaibing
半年机房,2.5年专业运维,1.5年PHP,1年Python,一共5.5年工作经验
展开
-
Ansible判断执行失败
ansible原创 2023-06-09 17:00:48 · 290 阅读 · 0 评论 -
使用Ansible安装Kafka集群
1.解压Kafa把kafka的tgz文件解压放在/app下- name: unarchive kafka unarchive: src: kafka_{{KafkaVersion}}.tgz dest: /app copy: yes keep_newer: yes owner: mcloud group: mcloud tags: - unarchive_kafka2.创建 zk/原创 2021-08-26 20:37:20 · 1054 阅读 · 0 评论 -
Ansible 过滤列表变量中的元素
ansible的变量可以是 字符串 ,列表,字典,最近有这么一个需求,就是把内置的一个列表变量的某个特定元素从列表中 去除掉 。比如ansible 10.1.10.1 -m shell -a 'echo {{ group_names|to_json }}' 结果是10.1.10.1 | CHANGED | rc=0 >>[app1, app2, app3, app4, null]这里就是 10.111.10.1所在的的所有组的列表,其中null是个干扰项,我们要剔除,怎么办呢?这原创 2021-10-27 14:32:08 · 717 阅读 · 0 评论 -
ansible 查看组和成员信息(包括条件排除后)
网上的收集加自己的探索,分享给大家ansible 查看所有成员,哈哈天下都知道ansible all --list #all可以替换为分组名#或者ansible all --list-hostansible查看每个成员所在的分组 因为往往一个IP在多个分组中ansible all -a "echo {{group_names|to_json}}" #to_json为解决unicode问题ansible查看分组列表,也就是一共多少分组ansible x.x.x.x -a "echo原创 2021-10-23 13:32:28 · 2228 阅读 · 0 评论 -
ansible-playbook template的写法的坑
ansible-playbook的template,好比 django的template,用法几乎一样,也就是把变量投射到模板中。这里一个小坑,那就是使用for或者if条件的时候,需要把{%符号提到第一格,不留空格,否则下面的内容会错乱filebeat.inputs:- type: log close_timeout: 5m enabled: true tail_files: true paths:{% for app in applist %} - /app/{{app}}/l原创 2021-10-18 14:54:52 · 344 阅读 · 0 评论 -
ansible-playbook 检测文件是否存在的坑
检测文件用stat模块即可,但主要有两种情况第一种:只检测一个文件- name: 检测链路日志是否存在 stat: path=/app/{{appname}}/log/{{appname}}-trace.log register: check_log这里appname是一个字符串,这样判断的时候就是 when: check_log.stat.exists == false #或者t原创 2021-10-18 11:19:14 · 1646 阅读 · 0 评论 -
ansible 和 ansible-playbook 在 sudo上的明显差别
目前从ansible服务器到目标机器,比如10.1.1.1,可以直接以root远程到目标的mcloud用户,也就是在ansible主机上可执行 ssh -l mcloud 10.1.1.1。这就涉及到sudo的问题了。我发现ansible和ansible-playbook在实现的方式上是不一样的ansible的实现方式这是inventory文件 host1 确定sudo的方式[all]10.1.1.1[all:vars]ansible_become=Trueansible_become_us原创 2021-10-08 22:02:15 · 352 阅读 · 0 评论 -
ansible的copy模块的权限的坑
我写了这么一个yml,目的就是批量从主机复制文件到各个节点,这里的app_name是变量。本来很简单,但是我执行了一次之后,再执行一次,就报了这样的错误反正就是没有权限了,真是怪哉,去一个节点的这个位置查看,才发现权限乱了,怎么owner的r权限都没了?人工干预后,才停止报错,再执行一遍,又报错了我才怀疑到是mode有问题,这里mode 755是不对的!必须是0755!看了官方说明,才恍然大悟。执行ansible-doc -s copy 有这么一段意思就是,目标文件或目录的权限。mode原创 2021-10-05 18:35:25 · 2606 阅读 · 0 评论 -
ansible-playbook巧用实现批量执行脚本
ansible的 script 模块 可以用来远程批量执行脚本, 但是ansible-playbook可以做得更精细。这是inventory文件,名称为host 每一条IP都有各自的env变量[all]10.111.1.23 env=SIT10.111.1.24 env=SIT10.111.8.24 env=UAT10.111.5.14 env=Prod10.111.5.16 env=Prod这是deploy.yml文件---- hosts: all #主机组名原创 2021-10-02 00:28:30 · 4466 阅读 · 1 评论