• linux ansible(三)


    ansible 配置详解
    3.1 ansible 安装方式
    ansible安装常用两种方式,yum安装和pip程序安装

    3.1.1 使用 pip(python的包管理模块)安装
    需要安装一个python-pip包,安装完成以后,则直接使用pip命令来安装我们的ansible包

    [root@localhost ~]$ yum install python-pip
    [root@localhost ~]$ pip install ansible
     

    3.1.2 使用 yum 安装
    需要先安装一个epel-release包,然后再安装 ansible 即可。

    [root@localhost ~]$ yum -y install epel-release
    [root@localhost ~]$ yum -y install ansible
     

    3.2 ansible 程序结构
    安装目录如下(yum安装):

    配置文件目录:/etc/ansible/
    执行文件目录:/usr/bin/
    Lib库依赖目录:/usr/lib/pythonX.X/site-packages/ansible/
    Help文档目录:/usr/share/doc/ansible-X.X.X/
    Man文档目录:/usr/share/man/man1/

    3.3 ansible配置文件

    1. inventory = /etc/ansible/hosts #这个参数表示资源清单inventory文件的位置
    2. library = /usr/share/ansible #指向存放Ansible模块的目录,支持多个目录方式,只要用冒号(:)隔开就可以
    3. forks = 5 #并发连接数,默认为5
    4. sudo_user = root #设置默认执行命令的用户
    5. remote_port = 22 #指定连接被管节点的管理端口,默认为22端口,建议修改,能够更加安全
    6. ask_pass = True #是否需要密码
    7. host_key_checking = False #设置是否检查SSH主机的密钥,值为True/False。关闭后第一次连接不会提示配置实例
    8. timeout = 60 #设置SSH连接的超时时间,单位为秒
    9. log_path = /var/log/ansible.log #指定一个存储ansible日志的文件(默认不记录日志)

    3.4 ansuble主机清单
    在配置文件中,我们提到了资源清单,这个清单就是我们的主机清单,里面保存的是一些 ansible 需要连接管理的主机列表。在/etc/ansible/hosts文件内

    直接指明主机地址或主机名:

    [root@localhost ~]$ vim /etc/ansible/hosts 
    ## green.example.com#
    # blue.example.com#
    # 192.168.100.1
    # 192.168.100.10
     

    定义一个主机组[组名]把地址或主机名加进去

    [root@localhost ~]$ vim /etc/ansible/hosts 
    [mysql_test]
    192.168.253.159 ansible_user=root ansible_port=22 ansible_ssh_pass=root
    192.168.253.160 ansible_user=root ansible_port=22 ansible_ssh_pass=root
    192.168.253.153 ansible_user=root ansible_port=22 ansible_ssh_pass=root
     

    还可以使用密钥对配置免密登录
    服务端生成密钥对

    [root@localhost ~]$ ssh-keygen    #一路回车
    
    • 然后把公钥传到被控端
    [root@localhost ~]$ ssh-copy-id root@192.168.37.122

     vars变量 :定义主机的内置参数
    定义属于整个组的变量

    1. [root@localhost ~]$ vim /etc/ansible/hosts
    2. [test]
    3. host1
    4. host2
    5. [test:vars]
    6. ntp_server=ntp.atlanta.example.com
    7. proxy=proxy.atlanta.example.com

    嵌套定义vars

    1. #编写主机组
    2. [group1]
    3. group1.linux.com
    4. [group2]
    5. group2.example.com
    6. [group:children]
    7. group1
    8. group2
    9. #嵌套变量定义
    10. [group:vars] ##用var进行标识
    11. user=studen ##以字典方式定义

  • 相关阅读:
    委派设计模式
    UTONMOS利用区块链技术,帮助数字藏品实现“确权”与“溯源”
    重点难点突破——级数与数列综合大题
    HCIP(第十五天)
    『现学现忘』Git分支 — 38、Git分支介绍
    【Spring】事务实现原理
    shiro
    Vue54-浏览器的本地存储webStorage
    数据结构习题—链表
    Flume监听多个文件目录,并根据文件名称不同,输出到kafka不同topic中
  • 原文地址:https://blog.csdn.net/ajax_beijing_java/article/details/133092541