ansible简介安装配置

ansible简介

ansible是一款,自动化运维管理工具。顾名思义是用于批量去管理及安装服务及批量管理主机。

ansible与saltstack对比

 

ansible优点:配置简单,部署容易除主管理机外不需要多余配置。使用ssh进行传输管理。安全性高。语法简单,学习入门块。支持sudo。

ansible缺点:只支持分组最多265个主机。传输使用ssh,传输速度慢。

salt优点:使用zeroMQ进行传输速度快。主机数量无上限。密码容易保管,命令容易审计。

salt缺点:主进程进行守护,被管理段需要安装客户端。传输及连接不加密。配置复杂,语法相对繁琐。

ansible安装部署

 

1.确保机器上安装的是 Python 2.6 或者 Python 2.7 版本以上:
2.添加yum 源

    a、 vim /etc/yum.repos.d/ansible

    b、 添加如下内容:

      [epel]

      name = all source for ansible

      baseurl = https://mirrors.aliyun.com/epel/7/x86_64/

      enabled = 1

      gpgcheck = 0

 

      [ansible]

      name = all source for ansible

      baseurl = 
                 
                http://mirrors.aliyun.com/centos/7.3.1611/os/x86_64/

      enabled = 1

      gpgcheck = 0

yum clean all

3 安装ansible:yum install ansible -y
(如使用centos7.0以上python版本会默认2.7以上,云服务yum源也不用管,可以使用yum list ansible查看是否存在ansible)
ansible安装

 

ansible配置文件详解

 1 [defaults]          #通用默认配置
 2 inventory      = /etc/ansible/hosts     #被控制端IP或者DNS列表
 3 library        = /usr/share/my_modules/     ##默认搜寻模块的位置
 4 remote_tmp     = ~/.ansible/tmp            #远程执行临时文件
 5 local_tmp      = ~/.ansible/tmp
 6 plugin_filters_cfg = /etc/ansible/plugin_filters.yml
 7 forks          = 5      ##并行线程数
 8 poll_interval  = 15     ##回频率或轮询间隔时间
 9 sudo_user      = root       ##sudo远程执行用户名
10 ask_sudo_pass = True        ##使用sudo,是否需要输入密码
11 ask_pass      = True        ##是否需要输入密码
12 transport      = smart      ##通信机制
13 remote_port    = 22         ##远程SSH端口
14 module_lang    = C          ##模块和系统之间通信的语言
15 module_set_locale = False
16 gathering = implicit        ##控制默认facts收集(远程系统变量)
17 gather_subset = all
18 gather_timeout = 10
19 roles_path    = /etc/ansible/roles      ##使用playbook搜索Ansible roles
20 host_key_checking = False       ##是否检查远程主机密钥
21 sudo_exe = sudo         ##sudo远程执行命令
22 sudo_flags = -H -S -n       ##传递sudo之外的参数
23 timeout = 10            ##SSH超时时间
24 remote_user = root      ##远程登录用户名
25 log_path = /var/log/ansible.log     ##日志文件存放路径
26 module_name = command       ##Ansible命令默认执行的模块
27 executable = /bin/sh        ##执行的shell环境,用户shell模块
28 hash_behaviour = replace    ##特定的优先级覆盖变量
29 jinja2_extensions = jinja2.ext.do,jinja2.ext.i18    ##允许开启jinja2扩展模块
30 private_key_file = /path/to/file    ##私钥文件存储位置
31 display_skipped_hosts = True        ##显示跳过任何任务的状态
32 system_warnings = True      ##禁用系统运行Ansible潜在问题警告
33 deprecation_warnings = True     ##PlayBook输出禁用“不建议使用”警告
34 command_warnings = False    ##command模块Ansible默认发出警告
35 nocolor = 1         ##输出带上颜色区别,0表示开启,1表示关闭
36 pipelining = False      ##开启pipe SSH通道优化
37 
38 [accelerate]        ##accelerate缓存加速
39 accelerate_port = 5099      ##加速连接端口5099
40 accelerate_timeout = 30     ##命令执行超过时间,单位为s
41 accelerate_connect_timeout = 5.0    ##上一个活动连接的时间,单位为min
42 accelerate_daemon_timeout = 30      ##允许多个私钥被加载到daemon
43 accelerate_multi_key = yes      ##任何客户端想要连接daemon都要开启这个选项
ansible配置文件

 

ansile配置文件常用配置:

1     inventory 
该参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表 
      inventory = /root/ansible/hosts
 
2     library 
Ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放Ansible模块的目录 
      library = /usr/share/ansible
      
3    forks 
    设置默认情况下Ansible最多能有多少个进程同时工作,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管理节点的数量来确定。 
     forks = 5
     
4      sudo_user 
     这是设置默认执行命令的用户,也可以在playbook中重新设置这个参数 
      sudo_user = root
     //注意:新版本已经作了修改,如ansible2.4.1下已经为:
      default_sudo_user = root 
    
5    remote_port 
    这是指定连接被关节点的管理端口,默认是22,除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的 
     remote_port = 22
     
6   host_key_checking 
     这是设置是否检查SSH主机的密钥。可以设置为True或False 
     host_key_checking = False
     
7   timeout 
     这是设置SSH连接的超时间隔,单位是秒。 
     timeout = 20
     
8    log_path 
     Ansible系统默认是不记录日志的,如果想把Ansible系统的输出记录到人i治稳健中,需要设置log_path来指定一个存储Ansible日志的文件 
     log_path = /var/log/ansible.log
     
     另外需要注意,执行Ansible的用户需要有写入日志的权限,模块将会调用被管节点的syslog来记录,口令是不会出现的日志中的
     
 9    private_key_file
       默认
       private_key_file=/path/to/file.pem
      在使用ssh公钥私钥登录系统时候,需要修改密钥路径。
       private_key_file = /root/.ssh/id_rsa
    
10   deprecation_warnings
       #deprecation_warnings = True
       注释:
             以上使用的默认的,配置会提示警告信息,我们需要修改为 
             False,关闭警告
             [DEPRECATION WARNING]: DEFAULT_SUDO_USER option, In favor of Ansible Become, which is a generic framework. See become_user. , use become instead. This feature will be 
            removed in version 2.8. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
             
    deprecation_warnings = False

 

posted @ 2020-10-30 14:15  大辉哥  阅读(104)  评论(0编辑  收藏  举报