设置基本的 Ansible 实验室

本文概述了在实验室环境中使用 Ansible 管理交换机的过程。此示例展示了 Ansible 的 ad-hoc 命令。对于重复性任务,请使用 Ansible playbook;例如这个 简单的 playbook 示例

要求

  • 一台运行 Cumulus Linux(任何版本)的交换机,名为 switch1
  • 一台运行 Debian 的服务器或虚拟机,带有基本安装(仅默认软件包),名为 server1

在服务器上,设置以下内容

  • DHCP
  • Ansible

网络地址

此示例使用 192.168.0.0/24 子网。

IP 地址实体
192.168.0.1现有网关
192.168.0.2server1
192.168.0.10switch1

配置 server1

在服务器上配置 DHCP 服务器,然后安装 Ansible。

  1. 安装所需的软件包

    root@server:~# apt-get install isc-dhcp-server
    
  2. 将静态 IP 地址 192.168.0.2 分配给 server1。编辑 /etc/network/interfaces ,使其看起来像

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
        address 192.168.0.2
        netmask 255.255.255.0
        gateway 192.168.0.1
    
  3. 配置 DHCP 范围。编辑 /etc/dhcp/dhcpd.conf 并将以下内容添加到文件中

    subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.100 192.168.0.200
        option routers 192.168.0.1;
        option domain-name-server 192.168.0.2;
        option domain-name "example.com";
        
        host switch1 {
          hardware ethernet 00:JJ:YU:38:AC:45;
          fixed-address 192.168.0.10;
        }
    
  4. 重新启动 server1。

  5. 重新启动 switch1。

  6. 确认可以从 server1 访问 switch1

     root@server:~# ping 192.168.0.10 
     64 bytes from 192.168.100.11: icmp_req=2 ttl=64 time=0.141 ms
    
  7. 安装 Ansible

    root@server:~# apt-get install python-pip
    root@server:~# pip install ansible
    

通过 Ansible 配置 MOTD

本节介绍如何使用 Ansible 创建简单的每日消息 (MOTD)。

  1. 创建一个示例 MOTD 文件

     root@server:~#  echo "SAMPLE MOTD" > ~/sample.motd
    
  2. 创建一个清单文件,其中包含列表中的 switch1

     root@server:~#  echo "192.168.0.10" > ~/ansible.hosts
    
  3. 将示例 MOTD 推送到 switch1 (192.168.0.10)。输入 cumulus 用户(默认用户)的密码

    root@server:~# ansible -k -K -u cumulus -i ~/ansible.hosts -m 'copy' -a 'src=~/sample.motd dest=/etc/motd' 192.168.0.10
         
        
    SSH password:
    sudo password [defaults to SSH password]: 
     sw1 | success >> {
        "changed": false, 
        "dest": "/etc/motd", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "b04dde3768174a34f75fdde78142849d", 
        "mode": "0644", 
        "owner": "root", 
        "path": "/etc/motd", 
        "size": 12, 
        "state": "file", 
        "uid": 0
    }
    

另请参阅

Cumulus Linux 的默认用户名和密码