ansible-配置文件详解:
ansible默认配置文件为/etc/ansible/ansible.cfg,配置文件中可以对ansible进行各项参数的调整,包括并发线程、用户、模块路径、配置优化等,
如下为ansible.cfg常用参数详解:

[defaults]                                     #通用默认配置段
inventory = /etc/ansible/hosts #被控制端IP或者DNS列表
library = /usr/share/my_modules/ #ansible默认搜寻模块的位置
remote_tmp = $HOME:/.ansible/tmp #ansible远程执行临时文件
forks = 100 #并行进程数
sudo_user = root #sudo远程执行用户名
ask_sudo_pass = True #使用sudo,是否需要输入密码
ask_pass = True #是否需要输入密码
remote_port = 22 #远程SSH端口
module_lang = C #模块和系统之间通信的语言
host_key_checking = False #检查远程主机密钥
#sudo_exec = sudo #sudo远程执行命令
#sudo_flags = -H #传递sudo之外的参数
timeout = 10 #SSH超时时间
remote_user = root #远程登陆用户名
log_path = /var/log/ansible.log #日志文件存放路径
module_name = command #ansible命令执行默认的模块
#executable = /bin/bash #执行的shell环境,使用shell模块
#system_marnings = True #禁用系统运行ansible潜在问题警告
#command_warnings = False #command模块ansible模块默认发出的警告
#nocolor = 1 #输出带上颜色区别,开启/关闭: 0/1
pipelining = False #开启pipe SSH通道优化
 
ansible-性能调优:
ansible企业实战环境中,如果管理的服务器越来越多,ansible执行效率会变得比较慢,可以通过优化ansible提供工作效率,由于ansible基于SSH协议通信,SSH连接慢会导致整个基于ansible执行变得缓慢,也需要对openssh进行优化,具体优化的方法如下:
1)ansible SSH 关闭密钥检测:
默认以SSH登录客户端服务器,会检查远程主机的公钥(public key),并将该主机的公钥记录在/root/.ssh/known_hosts文件中。下次访问相同主机时,openssh会核对公钥,如果公钥不同,openssh发出警告,如果公钥相同,则提示输入密码。
SSH对主机的public_key的检查等级时根据StrictHostKeyCheking变量来设定的,StrictHostKeyCheking检查级别包括: no(不检查)、ask(询问)、yes(每次都检查)、False(关闭检查)。
ansible配置文件中加入代码,即可关闭StrictHostKeyCheking检查:
host_key_checking = False

2)openssh连接优化:
使用openssh服务时,默认服务器配置文件UseDNS=YES状态,该选项会导致服务器根据客户端的IP地址进行DNS PTR反向解析,得到客户端的主机名,然后根据获取到的主机名进行DNS正向A记录查询,并验证该IP是否于原始IP一致。关闭DNS解析代码如下:(远程客户端关闭,关闭后重新启动/加载生效)

sed  -i  '/^GSSAPI/s/yes/no/g;/UseDNS/d;/Protocol/aUseDNS no' /etc/ssh/sshd_config

/etc/init.d/sshd restart
/usr/sbin/sshd reload
systemctl reload sshd

3)SSH pipelining加速Ansible:

SSH pipelining是一个加速 ansible 执行速度的简单方法,SSH pipelining默认时关闭的,关闭时为了兼容不同的sudo 配置,主要requiretty 选项。
如果不使用sudo建议开启该选项,打开此选项可以减少ansible 执行没有文件传输时,SSH在被控制机器上执行任务的连接数。使用sudo操作的时候,必须在所有被管理的主机讲配置文件/etc/sudoers中requiretty 选项禁用。
sed    -i    '/^pipelining/s/False/True/g'    /etc/ansible/ansible.cfg

4)ansible Facts缓存优化:
ansible-playbook 在执行过程中,默认会执行Gather facfs,如果不需要获取客户端的fact数据的话,可以关闭获取fact数据功能,关闭之后可以加快 ansible-playbook的执行效率。 如需关闭fact功能,在playbook yaml文件中加入如下代码即可:

gather_facts:no

ansible facts组件主要用于收集客户端设备的基础静态信息,这些信息可以在做配置管理的时候方便引用。 Facts信息直接当作ansible playbook变量信息引用,通过定制fastc以便收集我们想要的信息,同时可通过Facts和ohai来拓展facts信息,也可以讲facts信息存入redis缓存中,如下为facts使用redis缓存的步骤:

1.部署redis服务:
wget http://download.redis.io/releases/redis-2.8.13.tar.gz
tar xf redis-2.8.13.tar.gz
cd redis-2.8.13
make PREFIX=/usr/local/redis install
cp redis.conf /usr/local/redis/
将/usr/local/redis/bin/目录加入至环境变量文件/etc/profile末尾,让shell终端执行 source /etc/profile 让环境变量生效。
export PATH=/usr/local/redis/bin:$PATH
source /etc/porfile
启动及停止redis服务命令:(后台运行)
nohup /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf &
2.安装python redis 模块:
easy_install pip
pip install redis

3.ansible整合redis配置(注意redis版本问题):

在配置文件/etc/ansible/ansible.cfg中defaluts段加入代码,如果redis为admin,则开启admin密码行:

gathering = smart
fact_caching = redis
fact_caching_timeout = 86400
fact_caching_connection = localhost:6379
#fact_caching_connection = localhost:6379:0:admin

4.测试redis缓存:

ansible-playbook执行nginx_wget.yaml剧本文件:

ansible-playbook nginx_wget.yaml

检查redis服务器,facts key已存入redis中:

5)ControlPersist SSH优化:

ControlPersist特性需要搞版本的SSH支持,centos6默认时不支持的,如果需要使用,需要升级openssh。
ControlPersist即持久化的socket,一次验证多次通信。并且只需要修改SSH客户端配置,也即ansible被管理主机。
可使用YUM或者源码编译升级openssh服务,升级完毕ControlPersist的设置方法如下: 在其用户的加目录创建config文件,如果ansible以root用户登录客户端,至需要在客户端的/root/.ssh/config 文件中添加如下代码即可:

  Host *  
Compression yes
  ServerAliveInterval 60
  ServerAliveCountMax 5
  ControlMaster auto
  ControlPath ~/.ssh/%r@%h-%p
  ControlPersist 4h

开启ControlPersist 特性后,SSH 在建立sockets后,节省每次验证和创建的时间,对ansible 执行速度提升非常明显得。
创建ssh_config.sh脚本:
anible服务端 使用script模块运行脚本 (到远程端执行):time是测试anible的处理速度:

time ansible all -m script -a "/data/sh/ssh_config.sh"
time ansible all -a "cat /root/.ssh/config"

ansible-配置文件优化-性能调优的更多相关文章

  1. mysql 索引优化 性能调优 锁

    1 检查mysql 是否安装 rpm -qa|grep -i mysql 2 ntsysv 查看和设置开机启动列表 3 mysql 在 centos 上默认 的数据目录是 /var/lib/mysql ...

  2. 优化系统资源ulimit《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》

    优化系统资源ulimit<高性能Linux服务器构建实战:运维监控.性能调优与集群应用> 假设有这样一种情况,一台Linux 主机上同时登录了10个用户,在没有限制系统资源的情况下,这10 ...

  3. 鲲鹏性能优化十板斧(二)——CPU与内存子系统性能调优

    1.1 CPU与内存子系统性能调优简介 调优思路 性能优化的思路如下: l   如果CPU的利用率不高,说明资源没有充分利用,可以通过工具(如strace)查看应用程序阻塞在哪里,一般为磁盘,网络或应 ...

  4. 优化Linux内核参数/etc/sysctl.conf sysctl 《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》

    优化Linux内核参数/etc/sysctl.conf  sysctl  <高性能Linux服务器构建实战:运维监控.性能调优与集群应用> http://book.51cto.com/ar ...

  5. 【Java/Android性能优化1】Android性能调优

    本文参考:http://www.trinea.cn/android/android-performance-demo/ 本文主要分享自己在appstore项目中的性能调优点,包括同步改异步.缓存.La ...

  6. [大牛翻译系列]Hadoop(16)MapReduce 性能调优:优化数据序列化

    6.4.6 优化数据序列化 如何存储和传输数据对性能有很大的影响.在这部分将介绍数据序列化的最佳实践,从Hadoop中榨出最大的性能. 压缩压缩是Hadoop优化的重要部分.通过压缩可以减少作业输出数 ...

  7. Java程序性能优化读书笔记(一):Java性能调优概述

    程序性能的主要表现点: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:内存分配是否合理,是否过多地消耗内存或者存在内存泄漏 启动时间:程序从运行到可以正常处理业务需要花费多少时间 负载承 ...

  8. Spark性能调优之代码方面的优化

    Spark性能调优之代码方面的优化 1.避免创建重复的RDD     对性能没有问题,但会造成代码混乱   2.尽可能复用同一个RDD,减少产生RDD的个数   3.对多次使用的RDD进行持久化(ca ...

  9. 性能调优之访问日志IO性能优化

    性能调优之访问日志IO性能优化   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821 ...

  10. 性能调优之MYSQL高并发优化

    性能调优之MYSQL高并发优化   一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之 ...

随机推荐

  1. Github秒变VSCode在线编辑器

    在仓库页面 在网页地址中github后面加上 1s 即可

  2. 搭建Vue脚手架(vue-cli)

    windows下环境安装前置环境 node.js安装 https://nodejs.org/en/download/ 安装成功后打开cmd 输入如下,如果能看到node和npm的版本号了,说明已经安装 ...

  3. Seeion相关

    存储会话数据有两种方式: Cookie 1) 存储在浏览器端,通过服务器发送cookie数据 2) 使用cookie存储会话数据,相对不安全(可以cookie查到一些用户安全) 3) 从存储数据类型来 ...

  4. 2021-7-29 MySql的简单使用

    创建表格   先判断users表是否存在,然后设置user_id为无符号(UNSIGNED)自动增长(AUTO_INCREMENT)的整型 并通过PRIMARY KEY设置user_id为主键 ENG ...

  5. Vue: 配置axios基准路径并使用

    配置 main.js文件修改 在main.js中进行如下修改 // 设置axios全局api import axios from 'axios' // 请求基准路径的配置 后台 axios.defau ...

  6. pandas 根据内容匹配并获取索引

    bool = ExcelDataStr.str.contains("Item No./Customer/Saler") # 初始位置:initial position, 终位置:e ...

  7. ois七层模型与数据封装过程

    一,ois七层模型 一,ois七层模型1 为什么要分层2 七层模型3 七层总结二,协议,端口,的作用2.1协议作用2.2tcp/udp的区别2.3ARP 协议的作用2.4客户端与服务端的作用2.5ic ...

  8. 使用kafka自带脚本进行压力测试

    前言 kafka官方自带压力测试脚本: 消费者压力测试:kafka-consumer-perf-test.sh 生产者压力测试:kafka-producer-perf-test.sh 测试节点: 17 ...

  9. 【腾讯云 Cloud Studio 实战训练营】在线 IDE 编写 canvas 转换黑白风格头像

    关于 Cloud Studio Cloud Studio 是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站.用户在使用Cloud Studio 时无需安装,随时随地打开浏 ...

  10. gitlab与LDAP 联调

    gitlab整理 目录 gitlab整理 1.安装Gitlab依赖包 2.下载,安装 3.配置,访问域名及邮箱 4.初始化,启动 5.访问,以及邮箱测试 5.1汉化 6.问题总结处理 6.1安装时出现 ...