自动化发布ansible以及awx相关(持续更新)
一 本文章只介绍ansible的基础知识以及一些组织架构,如何批量的处理等
首先一套部署发布任务在ansible里面都是以role的形式展现,并在执行命令的时候执行role入口以及主机列表
例如:ansible-playbook -i test_list auto_ingress.yml -e "node=xx role=xxx" -t tags xx --skap-tags=xxx
- -i 指定执行的主机清单
- -e 指定playbook运行参数
- -t 指定运行playbook时候需要使用的标签
- --skip-tags: 指定运行playbook时候需要忽略的标签
二 展示一下我们使用的入口文件
- hosts: "{{ node }}"
gather_facts: no
become: yes #普通用户执行任务
become_user: root #普通用户执行任务
become_method: sudo #普通用户执行任务
vars:
ENV_TYPE: "test"
roles:
- "{{ role }}"
- vars里面添加变量
gather_facts是否需要收集主机信息
三 展示一下工程组织目录

四 对一些常用的模块的使用,直接附上之前使用过的脚本
- name: get logstash
copy: src=logstash-oss-7.11.1-linux-x86_64.tar.gz dest=/tmp/logstash-oss-7.11.1-linux-x86_64.tar.gz force=yes mode=755 - name: mkdir logstash_path
file: path=/home/daho state=directory - name: unarchive package
shell: "tar -zvxf logstash-oss-7.11.1-linux-x86_64.tar.gz -C /home/daho/"
args:
chdir: /tmp - name: director exist or not
stat: path=/etc/logstash-7.11.1
register: logstash_path - name: mkdir logstash_path
file: path=/etc/logstash-7.11.1 state=directory
when: logstash_path.stat.exists == false
- name: start logstash
systemd: name=logstash-7.11.1 enabled=yes state=restarted daemon_reload=yes
- name: Make sure we have a {{ user }} group
group:
name: "{{ user }}"
state: present
- name: Allow {{ user }} group to have passwordless sudo
lineinfile:
dest: /etc/sudoers
state: present
regexp: '^%admin'
line: '%admin ALL=(ALL) NOPASSWD: ALL'
- name: Create user {{ user }}
user:
name: "{{ user }}"
shell: /bin/bash
groups: "{{ user }}"
createhome: yes
home: /home/{{ user }}
state: present
- name: create key directory
action: file path=/home/{{ user }}/.ssh/ state=directory owner={{ user }} group={{ user }} mode=0700
- name: create key file
action: file path=/home/{{ user }}/.ssh/authorized_keys state=touch owner={{ user }} group={{ user }} mode=0600
- name: copy ssh pub
blockinfile: path=/home/{{ user }}/.ssh/authorized_keys block="{{ lookup('file', './files/frpc/customer.pub') }}"
- name: get vag soft from remote repo to local
get_url: url={{ vag_remote_package }} url_username=xxx url_password=xxx dest={{ local_vag_path }}
- name: compress package
unarchive: src={{ xxx }}/{{ xxx }} dest={{ xx }} mode=0755 copy=no
- name: detele core
lineinfile: path=/etc/hosts regexp="core$" state=absent
- name: append /etc/hosts
lineinfile: path=/etc/hosts line="{{ xxxx }} core"
- name: touch dirname
file: path={{ xxx }} state=directory
四 test_list清单
[pp]
xx ansible_host=xx ansible_ssh_user=root ansible_ssh_port=22 [k8s]
master ansible_host=xx ansible_ssh_user=root ansible_ssh_password=xxx sn=master
[all:vars]
ansible_ssh_common_args='-o ProxyCommand="ssh -p 22 -W %h:%p -q root@xxx"'
五 ansible的运行优化方式
5.1 开启SSH长连接,具体方法
修改ansible.cfg设置参数
ssh_args = -C -o ControlMaster=auto ControlPersist=5d
ControlPersist=5d
- 开启后,通过ssh连接过的设备会在当前目录 .ansible/cp/目录下生成一个socket文件,通过netstat命令会看到,有ESTABLISHED状态的连接一直与远端保持TCP连接
5.2 开启pipelining
执行流程优化,需要被控制主机/etc/sudoers文件编辑当前ansible ssh用户的配置为requiretty,否则在执行的时候会报错 sudo:sorry,you must have a tty to run sudo
并且在ansible.cfg上面配置参数
pipelining = True
5.3 开启accelerate模式
accelerate在远端服务器上面运行一个守护进程
开启accelerate需要管理与被管理端都需要安装python-keyczar包
[accelerate]
#accelerate_port = 5900
#accelerate_timeout = 30
#accelerate_connect_timeout = 5.0
5.4 关闭facts
配置如下所示
gather_facts: False
六 ansible的任务需要重启之后继续执行的办法(亲测有效)

七 一个功能
有一种场景,当我们的主机里面具有私钥,但是又不是默认的位置,这时候我们需要在/etc/ansible/ansible.cfg里面添加私钥位置,之后就可以实现免密登录来完成ansible的Task

自动化发布ansible以及awx相关(持续更新)的更多相关文章
- iOS动画相关(持续更新)
1.When my application is entering background, because the user push the home button, the animations ...
- css3布局相关(持续更新)
1三栏布局,两边定宽,中间自适应 2让文字位于div元素的正中央 3不管浏览器窗口如何变化,让一张图片始终显示在浏览器正中央.
- JS 字符串处理相关(持续更新)
一.JS判断字符串中是否包含某个字符串 indexOf() indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置.如果要检索的字符串值没有出现,则该方法返回 -1. var str ...
- 十、api自动化环境问题及解决方案汇总(持续更新)
1.jenkins报错: Unable to read /root/.jenkins/config.xml at hudson.WebAppMain$3.run(WebAppMain.java:248 ...
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...
- BAT 前端开发面经 —— 吐血总结 前端相关片段整理——持续更新 前端基础精简总结 Web Storage You don't know js
BAT 前端开发面经 —— 吐血总结 目录 1. Tencent 2. 阿里 3. 百度 更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘, ...
- Github 持续化集成 工作流 Npm包自动化发布
Github 持续化集成 工作流 Npm包自动化发布 简介 持续集成指的是,频繁地(一天多次)将代码集成到主干. 它的好处主要有两个: 快速发现错误.每完成一点更新,就集成到主干,可以快速发现错误 ...
- 开源小程序CMS网站, JeeWx-App-CMS 1.1 版本升级发布,持续更新!
JeeWx-App-CMS开源小程序CMS网站,持续更新ing~ JeeWx-App-CMS 是jeewx开发的小程序网站开源项目,基于小程序wepy语言,具备cms网站的基本功能,能够打造简单易用的 ...
- (持续更新) C# 面试技术点、常见SQL技术点 和 解决高并发的相关技术
这篇博客 持续更新. 方便小伙伴们学习与面试前的复习
- 个人开源项目testall 持续更新中···
项目在GitHub上:https://github.com/x113773/testall ,喜欢的给个星星呀,亲~ 打算把用到过的和学习过的,所有前后端技术都集成到这个项目里,并在issues里配以 ...
随机推荐
- ssm 创建bean的三种方式和spring依赖注入的三种方式
<!--创建bean的第一种方式:使用默认无参构造函数 在默认情况下: 它会根据默认无参构造函数来创建类对象.如果 bean 中没有默认无参构造函数,将会创建失败--> <bean ...
- MMDeploy部署实战系列【第五章】:Windows下Release x64编译mmdeploy(C++),对TensorRT模型进行推理
MMDeploy部署实战系列[第五章]:Windows下Release x64编译mmdeploy(C++),对TensorRT模型进行推理 这个系列是一个随笔,是我走过的一些路,有些地方可能不太完善 ...
- # AssertionError: The `num_classes` (3) in Shared2FCBBoxHead of MMDataParallel does not matches the length of `CLASSES` 80) in CocoDataset
我看很多人都遇到了这个问题,有很多解决了的.我就把这篇博文再完善一下,让大家对mmdetection使用得心应手. mmdetection训练自己的数据集时报错 ️ : # AssertionErro ...
- kubernetes集群最新版安装
原文地址:https://haiyux.cc/2022/09/21/k8s-install/ 虚拟机准备 我这里准备了三台虚拟机,分别部署一个master和两个node,操作系统位ubuntu 20. ...
- Java实现银行存取款
"感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友.您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!" 代码 `` ...
- 性能提升40%!阿里云神龙大数据加速引擎获TPCx-BB世界排名第一
简介:神龙大数据加速引擎,针对大数据常用组件,如Spark.Hadoop.Alluxio等,结合阿里云神龙架构的特性,进行软硬一体化优化,形成独一无二的性能优势,最终,使复杂SQL查询场景性能相比社 ...
- 有赞 Flink 实时任务资源优化探索与实践
简介: 目前有赞实时计算平台对于 Flink 任务资源优化探索已经走出第一步. 随着 Flink K8s 化以及实时集群迁移完成,有赞越来越多的 Flink 实时任务运行在 K8s 集群上,Flink ...
- 5G 和云原生时代的技术下半场,视频化是最大最新的确定性
------------恢复内容开始------------ null ------------恢复内容结束------------
- IphoneX(10) 重启/关机, 强制重启/关机
正常关机是同时长按 音量+ 和 右侧电源键,屏幕出现滑动按钮进行关机. 注意截图是同时短按 音量+ 和 右侧电源键. 强制关机是按照顺序按三个键:音量+ 音量- 长按右侧键 Other:苹果X怎 ...
- [FAQ] Argument 3 passed to Lcobucci\JWT\Signer\Hmac::doVerify() must be an instance of Lcobucci\JWT\Signer\Key, null given
出现这个错误,说明没有找到 key,在使用 laravel-jwt 之前需要生成加密 key,使用: $ php artisan jwt:secret Link:https://www.cnblogs ...