• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux下的自动化运维工具ansible初探

    一、什么样的情形需要批量部署

    1、操作系统的安装

    常见的有collber,red hat satelite(redhat)系统专用。

    2、操作系统的配置

    常见的有cfengine,puppet,chef,func。其中puppet最受欢迎

    3、批量程序的部署

    4、批量命令的运行查看状态信息

    二、ansible介绍

    ansible的架构大致如下

    ansible是新出现的运维工具是基于Python研发的糅合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。

    运维工具常见的工作模式 
    1、agent模式: 基于ssl实现。代理工作在被监控端。像puppet。 
    2、agentless模式: 基于ssh服务实现工作在被监控端。监控端是ssh的客户端。
    ansible是工作在agentless模式下具有幂等性。ansible在控制端只需要告诉监控端的期望状态就可以实现批量部署。

    名词解释 
    幂等性不会重复执行相同的指令。例如不会重复安装软件 
    期望状态只需要告诉被监控端的期望状态
    ansible是基于模块工作的ansible本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块ansible只是提供一种框架。架构包括

    连接插件connection plugins负责和被监控端实现通信。

    Host Inventory:指定操作的主机,是一个配置文件里面定义监控的主机

    各种模块核心模块command模块自定义模块

    借助于插件完成记录日志邮件等功能

    PlayBooks:剧本执行多个任务时。并非必需可以让节点一次性运行多个任务

    三、基本使用方法
     
    在管理集群时,ansible需要先配置集群hosts列表以方便集群操作

    复制代码
    代码如下:

    $ cat /etc/ansible/hosts
    [local]
    # 配置密码登陆,需要ansible本机安装sshpass
    192.168.213.135 ansible_ssh_user=root ansible_ssh_pass=root
    [zabbix]
    # 密钥登陆
    172.17.0.2:49154 ansible_ssh_user=root
    172.17.0.4:49155 ansible_ssh_user=root
    [vpn]
    172.17.0.10

     
    测试连接登陆是否OK

    复制代码
    代码如下:

    $ ansible local -m ping
    192.168.213.135 | success >> {
    "changed": false,
    "ping": "pong"
    }

     
    ansible常见用法为ansible host-pattern -m 模块 -a 命令,host-pattern类似于简化的正则表达式,而模块可以通过ansible-doc -l命令来查询。下面是一些常用模块的使用方法:
    安装软件:
    复制代码
    代码如下:
    ansible local -m apt -a ‘name=gcc state=present’
    或者
    复制代码
    代码如下:
    ansible local -m yum -a “name=nmap state=installed”

    执行命令:
    复制代码
    代码如下:
    ansible local -m shell -a ‘uptime’

    拷贝文件:
    复制代码
    代码如下:
    ansible local -m copy -a “src=/tmp/server dest=/tmp/server”

    文件属性:
    复制代码
    代码如下:
    ansible local -m file -a “dest=/tmp/server mode=755 owner=root group=root”

    *
     
    playbook
     
    playbook是由一个或多个“play”组成的列表。play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色。
     
    一个简单的playbook配置如下:

    复制代码
    代码如下:

    - hosts: local
    remote_user: root
    tasks:
    - name: echo hi
    shell: echo "hi"

     
    ansible还支持设置handlers,handlers是在执行tasks之后服务器发生变化之后可供调用的handler,使用起来如下:

    复制代码
    代码如下:

    # playbook.yml
    ---
    - hosts: local # hosts中指定
    remote_user: root # 如果和当前用户一样,则无需指定
    tasks:
    - name: whoami
    copy: src=~/hosts dest=~/hosts.dest # 本地拷贝到远端
    notify: # 如果copy执行完之后~/hosts.dest文件发送了变化,则执行
    - clear copy # 调用handler
    handlers:
    - name: clear copy
    shell: 'mv ~/hosts.dest hosts.del' # 假装删除

    上一篇:Linux系统中的curl命令使用教程
    下一篇:在Linux系统上使用交换文件扩展swap空间的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux下的自动化运维工具ansible初探 Linux,下,的,自动化,运维,