zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    数据流控制
    转:简单的Mysql主从复制设置
    转:CentOS---网络配置详解
    Linux-vim学习入门
    Linux图形界面与字符界面切换
    转:MySQL表名不区分大小写
    CentOS6.5_x86安装Mysql5.5.49
    Linux的环境变量设置和查看
    Linux防火墙的关闭和开启
    Linux command not found 问题解释
  • 原文地址:https://www.cnblogs.com/dahuige/p/13901852.html
Copyright © 2011-2022 走看看