【Ansible】尝试使用Ansible控制Cisco设备(示例代码2:端口设置)

首先

看起来ansible的核心network模块得到了增强。
# 话说回来,这个点提得有点晚啊…
## 甚至连续续写续作也慢得哀催。

(请查看上一篇文章等,有很多省略的内容)
用的是

    ios_config.py

所以,此操作环境等均为2016年3月的情况。

2. 执行环境

itemsversionnotesmac OSX10.10.x母艦OSOracle Virtualbox5.0.16 r105871HV用途CentOS7.2ansible machineansible2.0.1.0ここからげっとCatalyst 3560EIOS12.2弄れるのがこれしかなかた

3. 添加 Vlan 的示例代码 Vlan de

[cisco]
192.168.199.2
192.168.199.3

[cisco:vars]
ansible_ssh_user=operator
ansible_ssh_pass=operators_password
enable_pass=enable
---

- hosts: all
  gather_facts: no

  tasks:
   - name: add vlan
     local_action:
       module: ios_config
       authorize: yes
       auth_pass: a
       username: "{{ ansible_ssh_user }}"
       password: "{{ ansible_ssh_pass }}"
       host: "{{ inventory_hostname }}"
       lines:
         - description *** config by ansible ***
         - switchport access vlan 3112
         - switchport mode access
       parents: ['interface GigabitEthernet 0/27']
       replace: block

两台Cisco设备的Gi0/27端口将被配置为Vlan 3112。

4. 玩法解释

    1. 基本的的组装

 

    1. 如果用手来做,以下是步骤:

$ enable
密码:
# conf t
#(config) int Gi 0/27
#(config-if) description *** 通过ansible进行配置 ***
#(config-if) switchport访问vlan 3112
#(config-if) switchport模式访问

添加VLAN任务
通常情况下
在local_action模块中调用cisco模块。
尽管不是local_action,但本文介绍了其他方法。
正如从这里可以确认的那样,connection: local是很聪明的!

然后,内容如下。

playbook_detail
local_action:
module: ios_config //声明要使用的模块
authorize: 是 //进入特权模式
auth_pass: “{{ enable_pass}}” //特权模式的密码
username: “{{ ansible_ssh_user }}” //首次登录的用户
password: “{{ ansible_ssh_pass }}” //首次登录的用户密码
host: “{{ inventory_hostname }}” //循环用
lines: //从这里进入配置命令
– 描述 *** 通过ansible进行配置 *** //添加描述
– switchport访问vlan 3112 //添加vlan3112
– switchport模式访问 //不打标签
parents: [‘接口千兆以太网0/27’] //上一级=定义I/F
replace: 块 //一种错误控制

值得一提的是,parents: 和replace:我认为非常重要。
parents: 可以指示lines:旁边命令的层次结构,
这次我们想在Gi0/27上添加vlan 3112,所以写成这样。

然而,根据对交互式配置操作的设想,只使用lines似乎也能正常工作,如下所示。

playbook_detail_other
任务:
– 名称: 添加vlan
(省略)
lines:
– 接口Gi0/27
– 描述 *** 通过ansible进行配置 ***
– switchport访问vlan 3112
– switchport模式访问
replace: 块

再来一个,替换为:但是关于这个问题,有一些说明,即如果排列在 lines: 中的输入是错误的,则不会被推送,以及进行类似控制。关于这一点的实用性尚未验证。

请注意以下事项(截至2016年6月更新)。

截至2016年6月,关于构成方面的注意点已经没有了!以下是之前写的内容供参考↓

    • RedHat印のansibleでのみ動作可

mac OSXのbrew installで入るversionにはNW関連のupdateが含まれない(version 1.9.4)
yum installで入れるansibleにも同じくupdateが含まれない
githubにはあるのでcloneしても可

6. 结束语

真正的网络架构师似乎在努力使用NETCONF。因为我很幸运地能参加NetOpsCoding#3,所以我希望在那里收集信息。

为什么要努力学习使用Ansible呢?因为我认为它作为一款面向运维人员的操作工具,是一个很有潜力的统一候选选项。

从事系统运维工作的操作员们认为,尽可能统一操作手段会让工具学习成本和继承成本更轻松。大家应该都知道 Ansible 在服务器上的使用相当广泛,如果它也能应用于网络设备,那么运维工作就可以全部使用 Ansible,这是一种充满想象力的动力来源。

虽然路途仍然很遥远。

广告
将在 10 秒后关闭
bannerAds