1. 概述
    1. 简单的 ansible
  2. 准备
    1. ansible 安装
    2. 免密登录
  3. 约定
    1. 因为重点是 iventory, 所以只使用最简单的模块 ping

1. host-simple

  1. 概述
    1. 简单版 hosts 文件
  2. hosts
    1. 不是 /etc/hosts
      1. ansible 脚本, 很多时候, 需要主机的环境
      2. 如果配置 /etc/hosts
        1. 不太方便
        2. 没法跟着脚本走
  3. 格式

    # hosts-simple
    192.168.20.135.nip.io ansible_user=root
  4. 命令

    #  ansible -i <hosts> <hosts/group> -m <module>
    >  ansible -i hosts-simple 192.168.20.135.nip.io -m ping 
  5. 疑问
    1. nip.io
      1. 这玩意到底是啥

2. hosts

  1. 概述
    1. 类似系统的 hosts 文件
  2. 文件结构
    1. 主机名, 地址对
      1. 格式

        <hostName> ansible_host=<ip>
      2. 问题
        1. ansible_host 只是一个属性
          1. 还有别的属性吗
    2. 集群
      1. 概述
        1. 可以引入多个 地址对
      2. 格式

        [groupName]
        <hostName>
        <hostName>
    3. 大集群
      1. 概述
        1. 集群还可以继续组
      2. 格式

        [superGrouop:subGroup]
        <group>
        <group>
    4. 属性
      1. 概述
        1. 以组为单位, 划分的属性
      2. 格式

        [group:vars]
        <key>=<value>
      3. 疑问
        1. 不知道有没有 继承 的关系
    5. 示例

      # 1. 服务器
      demo ansible_host=192.168.2.135
      
      # 2. 服务器组
      [servers]
      demo
      
      # 3. 大组
      [cloud:children]
      servers
      
      # 4. 变量
      [cloud:vars]
      ansible_connection=ssh
      ansible_user=root
      ansible_private_key_file=~/.ssh/id_rsa
      host_key_checking=True
  3. ansible 命令: 指定 host 文件
    1. 默认
      1. /etc/ansible/hosts
    2. 参数

      -i <hosts>

2. ping 模块

  1. 概述
    1. ansible 的功能, 都是靠 模块 来实现的
    2. ping 模块, 自然就是实现 ping 功能的
  2. 参数

    -m <module>

3. 分组执行

  1. 概述
    1. 脚本执行的粒度, 是可以指定的
  2. 命令

    # 1. 地址对
    > ansible -i hosts demo -m ping
    # 2. 组
    > ansible -i hosts servers -m ping
    # 3. 大组
    > ansible -i hosts cloud -m ping
    # 4. 所有
    > ansible -i hosts all -m ping
    

ps

  1. ref
    1. learn python
    2. Ansible系列(一):基本配置和使用
  2. 遗留
    1. 因为是初学, 所以说很多参数都不甚了解, 等学成之后, 会来补完
02-10 01:51