Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

三大配置文件

hosts

  • 指定所有要操作的目标主机

  • 可以分组,下面是某一组的示范

    [prod]
    10.1.7.31 ansible_ssh_user="ubuntu" ansible_ssh_port=22 ansible_ssh_pass="xxxx"
    10.1.7.32 ansible_ssh_user="ubuntu" ansible_ssh_port=22 ansible_ssh_pass="xxxx"
    10.1.7.34 ansible_ssh_user="ubuntu" ansible_ssh_port=22 ansible_ssh_pass="xxxx"
    10.1.7.35 ansible_ssh_user="ubuntu" ansible_ssh_port=22 ansible_ssh_pass="xxxx"
    
    • 参数
      • 中括号内 分组的名字,用户后面的yaml文件
      • 第一列 ip地址
      • 第二列 登录的目标用户
      • 第三列 登录的目标端口
      • 第四列 用户的密码
        • 仅在第一次还未注入公钥时使用,后续可丢弃

ansible.cfg

  • 指定ansible的配置,需要在含有此文件的目录下,执行ansible命令

  • 示范

    [defaults]
    inventory = ./hosts
    host_key_checking = False
    
    • inventory 指定hosts文件的位置,这里直接同级
    • host_key_checking 用于避免第一次ssh时的检查

abcd.yaml

  • 这里面写要执行的脚本,整体结构如下

    - hosts: 分组名 
      vars:
        变量1: 变量值
      tasks:
        - name: 任务名
          模块名:
           参数名1: 参数值1
           参数名2: 参数值2
    
    • 主要结构:
      • 第一层级
        • hosts,代表要操作的分组,可以取值为prod
      • 第二层级
        • vars 代表要声明变量
        • tasks 代表要执行的任务队列
  • 执行前需要检验是否能连通目标主机

    ansible prod -m -ping
    
    • 对prod分组进行ping测试
  • 执行

    ansible-playbook abcd.yaml
    
    • 可以修改环境变量文件,简写为ap
      vim ~/.bashrc
      
      alias ap='ansible-playbook'
      
      source ~/.bashrc