设为首页 收藏本站
查看: 1125|回复: 0

[经验分享] Ansible自动化运维工具-上

[复制链接]

尚未签到

发表于 2018-1-3 06:10:56 | 显示全部楼层 |阅读模式
DSC0000.png

[Ansible特点]

  1)Ansible与saltstack均是基于Python语言开发的
  2)安装使用简单,基于不同插件和模块实现各种软件,平台,版本的管理以及支持虚拟容器多层级的部署
  3)不需要安装客户端,ansible基于SSH远程管理,不需要为配置工作添加额外的支持;
  PS:很多认为Ansible工具执行效率慢,其原因是SSH服务慢,我们可以选择优化SSH连接速度以及Ansible加速模块
  【Ansible自动化管理工具特点】
  #轻量级,更新时,需要在操作机上进行一次更新即可
  #采用SSH协议
  #不需要去客户端安装Agent;
  #批量任务执行可以写成脚本,而且不用分发到远程就可以执行
  #使用python编写,维护简单,支持sudo普通用户命令,中心化管理
   DSC0001.png
  【Ansible工具的安装配置】
  Ansible可以工作在Linux,BSD,Mac OS X等平台,对于
  Red Hat、CentOS操作系统可以直接基于YUM工具自动安装Ansible,CentOS6.x或者CentOS7.x安装前,需先安装epel扩展源,
[iyunv@master ~]# rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm   安装epel扩展源

  [iyunv@Ansible ~]# yum install -y epel-release ansible
[iyunv@Ansible ~]# cd /etc/ansible/

[iyunv@Ansible ansible]# ls

  ansible.cfg     hosts    roles
  PS:ansible.cfg为主配置文件,host文件为被管理机IP或者主机名列表;roles为角色或者插件路径,该目录为空;
  Ansible远程批量管理,其中执行命令是通过Ad-Hoc来完成的,也就是点对点执行命令,能够快速的执行,而且不需要保存执行的命令,默认host文件配置主机列表,可以配置分组,可以自定义各种IP及规则
  Ansible基于多模块管理,常用的Ansible工具模块包括:command,shell,script,yum,copt,File,async,docker,cron,mysql_user,ping,acl,add_host,easy_install.haproxy等等
  可使用ansible-doc -l | morec查看ansible支持的模块,也可以查看每个模块的帮助文档
  【Ansible工具参数详解】
  基于Ansible批量管理之前,需要被管理的服务器IP列表添加到/etc/ansible/hosts配置文件中如下定义为web服务组以及对应的IP
[webserver]

  192.168.2.138
  192.168.2.139
  基于Ansible自动化运维工具管理客户端案列操作,由于ansible管理远程服务器基于SSH,在远程服务器执行命令时需要远程服务器的用户名和密码,也可以加入-k参数手动输入密码或者基于SSH-keygen生成免秘钥;
  【主要参数如下】
  -v,–verbose                                      打印详细模式;
  -i PATH,–inventory=PATH                       指定host文件路径;
  -f NUM,–forks=NUM                             指定fork开启同步进程的个数,默认5;
  -m NAME,–module-name=NAME           指定module名称,默认模块command;
  -a MODULE_ARGS                       module模块的参数或者命令;
  -k,–ask-pass                           输入远程被管理端密码;
  –sudo                               基于sudo用户执行;
  -K,–ask-sudo-pass                      提示输入sudo密码与sudo一起使用;
  -u USERNAME,–user=USERNAME         指定移动端的执行用户;
  -C,–check                            测试执行过程,不改变真实内容,相当于预演;
  -T TIMEOUT,                                           执行命令超时时间,默认为10秒;
  --version                                                  查看Ansible软件版本信息。
  【Ansible配置文件详解】
  Ansible默认配置文件为/etc/ansible/ansible.cfg,配置文件中可以对ansible进行各项参数的调整,包括并发线程,用户,模块路径,配置优化等等
  [defaults]            #通用默认配置段
  #inventory = /etc/ansible/hosts                 #被控端IP或者DNS列表
  #library        = /usr/share/my_modules/             #ansible默认搜寻模块位置
  #module_utils   = /usr/share/my_module_utils/
  #remote_tmp     = ~/.ansible/tmp            #ansible远程执行临时文件;
  #local_tmp      = ~/.ansible/tmp
  #forks          = 5                            #并行进程数
  #poll_interval  = 15               #回频率或者轮训间隔时间
  #sudo_user      = root               #sudo远程执行用户名
  #ask_sudo_pass = True            #使用sudo,是够需要输入密码
  #ask_pass      = True                   #是否需要输入密码
  #transport      = smart                  #通信机制
  #remote_port    = 22                    #远程SSH端口
  #module_lang    = C                   #模块和系统之间通信语言
  #module_set_locale = False
  #gathering = implicit             #控制默认facts收集(远程系统变量)
  roles_path= /etc/ansible/roles                     用于playbook搜索Ansible roles;
  host_key_checking = False                             检查远程主机密钥;
  #sudo_exe = sudo                                      sudo远程执行命令;
  #sudo_flags = -H                                              传递sudo之外的参数;
  timeout = 10                                                    SSH超时时间;
  remote_user = root                                  远程登陆用户名;
  log_path = /var/log/ansible.log                日志文件存放路径;
  module_name = command                             Ansible命令执行默认的模块;
  #executable = /bin/sh                             执行的Shell环境,用户Shell模块;
  #hash_behaviour = replace                             特定的优先级覆盖变量;
  #jinja2_extensions                              允许开启Jinja2拓展模块;
  #private_key_file = /path/to/file             私钥文件存储位置;
  #display_skipped_hosts = True                       显示任何跳过任务的状态;
  #system_warnings = True                               禁用系统运行ansible潜在问题警告;
  #deprecation_warnings = True                          Playbook输出禁用“不建议使用”警告;
  #command_warnings = False                       command模块Ansible默认发出警告;
  #nocolor = 1                                                  输出带上颜色区别,开启/关闭:0/1;
  pipelining = False                                             开启pipe SSH通道优化;
[accelerate]                                                      accelerate缓存加速。

  accelerate_port = 5099
  accelerate_timeout = 30
  accelerate_connect_timeout = 5.0
  accelerate_daemon_timeout = 30
  accelerate_multi_key = yes

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431004-1-1.html 上篇帖子: 使用ansible结合FTP部署zabbix 下篇帖子: Ansible-playbook简单应用的几个实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表