美文网首页
使用CloudEngine-Ansible批量管理华为CE交换机

使用CloudEngine-Ansible批量管理华为CE交换机

作者: wsf535 | 来源:发表于2018-02-05 15:26 被阅读1025次

    总体介绍

    Ansible是一个开源的自动化运维工具,AnsibleWorks成立于2012年,由自动化工具Cobbler及Func的开发者Michael DeHaan创建,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible能够安装在包括Linux、BSD、Mac OS X 等平台。
    Ansible的CloudEngine模块是一个开源的,社区支持的应用程序。使用CloudEngine模块,可实现对华为数据中心CE系列交换机的自动化部署和配置。 您可以从https://github.com/HuaweiSwitch/CloudEngine-Ansible下载。

    image.png

    CloudEngine-Ansible环境安装:
    官方git地址:https://github.com/HuaweiSwitch/CloudEngine-Ansible

    测试最新版本与2.3版本都有点问题,(需要加export ANSIBLE_HOST_KEY_CHECKING=false 这个参数,不然连接会报错)功能正常的是2.0版本
    以下是在centos 7上的安装:
    环境准备:

    #安装ansible,因2.0版本支持的ansible是2.2所以直接安装ansible2.2,通过pip 方式安装
    #安装python-devel (不安装,在安装ansible 会报错)
    yum install python-devel
    #安装pip
    wget https://bootstrap.pypa.io/get-pip.py && python get-pip.py
    pip install ansible==2.2
    #安装ncclient
     pip install ncclient
    

    下载安装ce-ansible:

    #下载
    wget https://github.com/HuaweiSwitch/CloudEngine-Ansible/archive/v0.2.0.zip
    #解压
    unzip v0.2.0.zip
    cd CloudEngine-Ansible-0.2.0/
    sh install.sh
    

    交换机端的配置:(使用的是ce5855)

    #配置一个SSH用户
    aaa
    local-user wsf535 password irreversible-cipher $1a$}")FR_EZ!*$q9Y/I(iUOXbg~g!!cLuOe9:-OV=;XA*vD9NQ:tk5$
     local-user wsf535 service-type ssh
     local-user wsf535 level 15
    #
    ssh user wsf535 authentication-type password
    ssh user wsf535 service-type all
    ssh authorization-type default aaa
    #
    user-interface vty 0 4
     authentication-mode aaa
     protocol inbound ssh
    #开启netconf(关键,不开启会导致配置命令失败)
    snetconf server enable
    

    使用及排错:

    #如果centos系统没连接过交换机会报以下错
    An exception occurred during task execution. To see the full traceback, use -vvv. The error was: IOError: [Errno 2] No such file or directory: '/root/.ssh/known_hosts'
    解决方法:手动SSH连接一下
    ssh username@172.16.200.6 
    

    执行第一条测试命令:

    ansible -m ce_command -a "commands='display vlan summary' transport='cli' host=172.16.200.6 port=22 username=wsf535 password=ABC@2017" localhost --connection local
    

    如果成功返回则安装成功:

    localhost | SUCCESS => {
        "changed": false, 
        "stdout": [
            "Number of static VLAN: 10\nVLAN ID: 1 16 to 20 22 25 to 26 99 \n\nNumber of dynamic VLAN: 0\nVLAN ID: \n\nNumber of service VLAN: 31\nVLAN ID: 4064 to 4094 "
        ], 
        "stdout_lines": [
            [
                "Number of static VLAN: 10", 
                "VLAN ID: 1 16 to 20 22 25 to 26 99 ", 
                "", 
                "Number of dynamic VLAN: 0", 
                "VLAN ID: ", 
                "", 
                "Number of service VLAN: 31", 
                "VLAN ID: 4064 to 4094 "
            ]
        ], 
        "warnings": []
    }
    

    使用playbook

    #定义主机,我的测试环境只有这一台,如果有多台加到cloudengine标签下
    cat /etc/ansible/hosts 
    [all:vars]
    ansible_connection='local'
    username='wsf535'
    password='ABC@2017'
    ansible_ssh_port=22
    [cloudengine]
    172.16.200.6
    
    #新建一下vlan.yml文件,以下内容表示创建vlan 50
    ---
    
    - hosts: cloudengine
      gather_facts: no
      vars:
        test_vlan: 50
      
      tasks:  
    
      - ce_vlan: vlan_id={{test_vlan}} name="WEB" host={{inventory_hostname}} username={{username}} password={{password}} port={{ansible_ssh_port}}
    
    #执行操作
     ansible-playbook vlan.yml 
    

    成功结果:


    image.png

    相关文章

      网友评论

          本文标题:使用CloudEngine-Ansible批量管理华为CE交换机

          本文链接:https://www.haomeiwen.com/subject/bfabzxtx.html