如何利用ansible来管理配置cisco ASA,ansiblecisco


ansible的安装与介绍

ansible在centos下的安装:yum install ansible -y 

ansible的工作原理:ansible是用python写的一个网络工具,通过一个paramiko这个库来ssh登陆目标设备,然后执行相关命令。比如说你要用ansible安装一个软件,其实就是ansible  ssh到了你的目的主机,然后执行配置好的安装的命令了,如果你有很多机器都要安装同一个软件,就只用写一份安装配置,然后添加多个ip地址就可以了,是不是省了好多工作量。

ansible的开局配置与配置文件介绍

安装完ansible后,默认配置文件在  /etc/ansible/目录下,有ansible.cfg、hosts两个配置文件,其中ansible.cfg是ansible的系统配置文件,hosts是一个主机配置文件。

首先我们通过vim编辑ansible.cfg配置文件,将host_key_checking = false 的注释去掉,这是为了解决ssh登陆报秘钥的问题。

然后我们来看下hosts文件,vim打开hosts文件后,我们切到最后一行添加配置:

[test]

192.168.1.10 ansible_ssh_pass=root ansible_ssh_user=root ansible_connection=network_cli ansible_ssh_port=60022 ansible_network_os=asa ansible_become=yes ansible_become_method=enable ansible_become_pass=cisco

 

host文件里面的ip添加大概就是上面的格式,中括号里面是一个组名,下面一行是ip地址,再后面就是ssh登陆机器的账号密码,登陆后使用cli来配置,ssh的端口号,指定登陆设备的系统我这里登陆的是cisco的asa,是否进入特权模式,进入特权模式的命令是啥,cisco的是enable所以就写enable,进入特权模式的密码,这些都写在同一行,用空格隔开,如果是默认参数可以不写,想ssh端口号默认22,如果有多个ip就在写ip的层级多写几个ip

playbook的配置:

我们新建一个.yml文件,比如我们这里新建一个test.yml文件,在里面写入相关配置然后通过ansible来执行就是通过playbook来配置了,yml里面的配置文件有特定的格式,一般来说通过    ---(三个横杠)表示开始,   ...(三个点)表示结束,所以我们的配置都写在这两个符号中间,里面的数据都是通过列表或则字典来标识值的,列表是:- xxx,就表示一个列表,

字典是:key: values,注意列表中-后面有个空格,字典中:后面有个空格;

实例:下面相当于表示{fruit:[apple,oriange]}的意思,注意- apple要在fruit的后面一点,yml很注重层级关系

fruit:
 - apple
 - oriange

上面只是一个很简单的例子,实际情况中要要比这复杂的多,字典中含有列表,列表中又含有字典,等等。

下面是我yml文件里面的配置:

---
- name: success
  hosts: test
  tasks:
    - asa_config:
        lines:
         - service-object tcp destination eq 80
         - service-object tcp destination eq 81
        parents: object-group service hello
        backup: yes
...

其中---是开头,...是结尾,通过- 表示列表的开始,里面都是列表数据,name表示一个名字,里面随意写,执行时会打印出来,hosts后面跟的是ip组名,tasks表示一个任务,后面asa_config是一个模块,我们可以通过ansible-doc -l 查看ansible安装的所有模块,只有有这个模块我们才能调用,通过ansible-doc -l  | grep asa 可以查出asa能用的几个模块,用ansible-doc -s  模块名 或则ansible-doc 模块名   可以查看这个模块的使用参数,像我这里的lines parnets backup都是asa_config模块里的参数,我这里的任务是写一个group,再备份配置,lines是具体的规则,parents里面就是这条规则定义在哪个object里面,backup的yes表示要备份,他会先把原来的配置备份一遍然后再执行配置,保存的备份文件放在一个默认的位置/playbooks/ansible/backup/下面,

通过ansible-playbook xxx.yml就可以执行该yml文件了,或者再在后面加上-vvv可以查看详细的执行过程或报错信息。下面是执行后的结果。

相关内容

    暂无相关文章