一 本文章只介绍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相关(持续更新)的更多相关文章

  1. iOS动画相关(持续更新)

    1.When my application is entering background, because the user push the home button, the animations ...

  2. css3布局相关(持续更新)

    1三栏布局,两边定宽,中间自适应 2让文字位于div元素的正中央 3不管浏览器窗口如何变化,让一张图片始终显示在浏览器正中央.

  3. JS 字符串处理相关(持续更新)

    一.JS判断字符串中是否包含某个字符串 indexOf() indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置.如果要检索的字符串值没有出现,则该方法返回 -1. var str ...

  4. 十、api自动化环境问题及解决方案汇总(持续更新)

    1.jenkins报错: Unable to read /root/.jenkins/config.xml at hudson.WebAppMain$3.run(WebAppMain.java:248 ...

  5. Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G

    code&monkey   Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...

  6. BAT 前端开发面经 —— 吐血总结 前端相关片段整理——持续更新 前端基础精简总结 Web Storage You don't know js

    BAT 前端开发面经 —— 吐血总结   目录 1. Tencent 2. 阿里 3. 百度 更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘, ...

  7. Github 持续化集成 工作流 Npm包自动化发布

    Github 持续化集成 工作流 Npm包自动化发布 简介   持续集成指的是,频繁地(一天多次)将代码集成到主干. 它的好处主要有两个: 快速发现错误.每完成一点更新,就集成到主干,可以快速发现错误 ...

  8. 开源小程序CMS网站, JeeWx-App-CMS 1.1 版本升级发布,持续更新!

    JeeWx-App-CMS开源小程序CMS网站,持续更新ing~ JeeWx-App-CMS 是jeewx开发的小程序网站开源项目,基于小程序wepy语言,具备cms网站的基本功能,能够打造简单易用的 ...

  9. (持续更新) C# 面试技术点、常见SQL技术点 和 解决高并发的相关技术

    这篇博客 持续更新. 方便小伙伴们学习与面试前的复习

  10. 个人开源项目testall 持续更新中···

    项目在GitHub上:https://github.com/x113773/testall ,喜欢的给个星星呀,亲~ 打算把用到过的和学习过的,所有前后端技术都集成到这个项目里,并在issues里配以 ...

随机推荐

  1. 一文总结ACE代码框架

    一.前言 ACE_Engine框架是OpenAtom OpenHarmony(简称"OpenHarmony")的UI开发框架,为开发者提供在进行应用UI开发时所必需的各种组件,以及 ...

  2. MindSpore编译构建后Vmap模块的RuntimeError问题

    技术背景 这篇文章来源于MindSpore仓库中的一个Issue,简单描述问题就是,如果你用MindSpore开发了一个python软件供别人使用,那么很有可能涉及到编译构建的问题.但是如果直接使用编 ...

  3. BZOJ 4403序列统计

    假设存在一个满足条件的长度为i的不下降序列(显然是一定存在的)那么只需要从中选出i个数即可 (不必在意选出具体数的大小,可以把满足条件的序列写下来,选几个数感受一下). 但是$n \choose m ...

  4. UE4中HTC Vive 手柄如何抓取物体

    想知道 HTC Vive 手柄如何抓取物体? HTC Vive 的手柄有许多功能,在游戏里你可以用手柄射箭,可以用手柄拾取木棍等等,但是这些是如何设置的呢?来看看我们的公开课教程吧. 本期教程为上半部 ...

  5. JavaSE开发基础--包机制&JavaDoc&Scanner&循环结构&方法&数组

    包机制 如果文件在包中需要 在文件首行添加 package 地址 package pkg1.pkg2.pkg3 import package1 JavaDoc /** * @author作者名 * @ ...

  6. Vue3开源组件库

    最近收到的很多问题都是关于Vue3组件库的问题 今天就给大家推荐几个基于Vue3重构的开源组件库 目前状态都处于Beta阶段,建议大家抱着学习的心态入场,勿急于用到生产环境 Ant-design-vu ...

  7. 纯CSS实现带小三角提示框

    要实现在页面上点击指定元素时,弹出一个信息提示框.在前面的文章中,我们已经简单介绍了如何使用纯 CSS 创建一个三角形.本文在此基础上,记录如何使用 CSS 创建带三角形的提示框. 实现的原理是创建一 ...

  8. ECharts海量数据渲染解决卡顿的4种方式

    场景 周五进行需求评审的时候: 出现了一个图表,本身一个图表本没有什么稀奇的: 可是产品经理在图表的上的备注,让我觉得这个事情并不简单: 那个图表的时间跨度可以是月,年,而且时间间隔很短: 这让我意识 ...

  9. PeLK:101 x 101 的超大卷积网络,同参数量下反超 ViT | CVPR 2024

    最近,有一些大型内核卷积网络的研究,但考虑到卷积的平方复杂度,扩大内核会带来大量的参数,继而引发严重的优化问题.受人类视觉的启发,论文提出了外围卷积,通过参数共享将卷积的复杂性从 \(O(K^{2}) ...

  10. 有赞 Flink 实时任务资源优化探索与实践

    简介: 目前有赞实时计算平台对于 Flink 任务资源优化探索已经走出第一步. 随着 Flink K8s 化以及实时集群迁移完成,有赞越来越多的 Flink 实时任务运行在 K8s 集群上,Flink ...