码迷,mamicode.com
首页 > 其他好文 > 详细

自动化运维之Ansible的安装部署与命令模块

时间:2018-08-01 19:36:58      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:图片   use   star   自动化运维   cfengine   chmod   没有   cti   ESS   

  • Ansible简介
  • Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
    ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。

    主要包括:

    (1)连接插件connection plugins:负责和被监控端实现通信;

    (2)host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

    (3)各种模块核心模块、command模块、自定义模块;

    (4)借助于插件完成记录日志邮件等功能;

    (5)playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

    • 搭建环境

    管理端:centos7-1 192.168.177.145

    被管理端:centos7-2 192.168.177.135

    被管理端:centos7-3 192.168.177.132

    Ansible安装

    192.168.177.145:

    # systemctl stop firewalld.service  //关闭防火墙
    # setenforce 0
    # yum install -y epel-release  //安装epel源
    # yum install ansible -y   //安装Ansible
    # vim /etc/ansible/hosts 
      [abc]
      192.168.177.135
      [mysql]
      192.168.177.132
    # ssh-keygen -t rsa       //设置密钥对
    # ssh-copy-id root@192.168.177.135
    # ssh-copy-id root@192.168.177.132  //配置密钥对
    # ssh-agent bash    //免交互代理
    # ssh-add

    技术分享图片
    技术分享图片
    技术分享图片
    技术分享图片

    192.168.177.135(另一台也一样):

    # systemctl stop firewalld.service  //关闭防火墙
    # setenforce 0
    # cd ~/.ssh

    技术分享图片

    Ansible命令行模块

    command模块

    命令格式:ansible [主机] [-m 模块] [-a args]

    # ansible 192.168.177.135 -m command -a ‘date‘   //指定ip执行date
    # ansible mysql -a ‘date‘   //指定分类执行date

    技术分享图片
    技术分享图片

    cron模块

    用于定义任务计划

    两种状态(state):present表示添加(可以省略),absent表示移除。

    # ansible-doc -s cron      //查看cron模块信息
    # ansible abc -m cron -a ‘minute="*/1" job="/usr/bin/echo nihao" name="test nihao"‘  //添加周期性计划任务
    # ansible abc -a ‘crontab -l‘
    # ansible abc -m cron -a ‘name="test nihao" state=absent‘   //移除计划任务,假如该计划任务没有取名字,name=None即可

    技术分享图片
    技术分享图片

    user模块

    用于创建新用户和更改删除已存在的用户

    user模块是请求的是useradd, userdel, usermod三个指令

    # ansible-doc -s user
    # ansible mysql -m user -a ‘name=zhangsan‘  //创建zhangsan
    # ansible mysql -m user -a ‘name=zhangsan state=absent‘   //删除zhangsan

    技术分享图片
    技术分享图片

    group模块

    对用户组进行管理

    group模块请求的是groupadd, groupdel, groupmod 三个指令

    # ansible mysql -m group -a ‘name=test gid=306 system=yes‘  //创建test组
    # ansible mysql -m user -a ‘name=wang‘ //创建用户wang
    # ansible mysql -m group -a ‘name=test1 gid=506 system=yes‘  //创建test1组
    # ansible mysql -m user -a ‘name=wang uid=506 group=test1 system=yes‘ //将wang添加到test1组

    技术分享图片
    技术分享图片
    技术分享图片

    copy模块

    用于实现文件复制和批量下发文件

    # ansible-doc -s copy
    # ansible abc -m copy -a ‘src=/etc/fstab dest=/opt/fstab.bk owner=root mode=644‘ //将/etc/fstab复制到被管理端/opt下
    # ansible abc -a ‘cat /opt/fstab.bk‘ //查看

    技术分享图片
    技术分享图片

    file模块

    用于设置文件属性

    # ansible mysql -m file -a ‘path=/opt/test.txt state=touch‘  //创建空文件
    # ansible mysql -m file -a ‘path=/opt/test.txt owner=wang group=test1 mode=666‘   //设置文件的属主,属组和权限
    # ansible mysql -m file -a ‘src=/opt/test.txt path=/opt/test.txt.link state=link‘  //创建链接性文件
    # ansible mysql -m copy  -a ‘content="hello" dest=/opt/test.txt‘  //在test.txt中写入内容

    技术分享图片
    技术分享图片
    技术分享图片
    技术分享图片

    ping模块

    用于测试指定主机的连通性

    # ansible all -m ping

    技术分享图片

    yum模块

    # ansible abc -m yum -a ‘name=httpd‘ //yum安装httpd服务

    技术分享图片

    service模块

    用来控制管理服务的运行状态

    # ansible abc -m service -a ‘name=httpd enabled=true state=started‘  //开机自启动

    技术分享图片
    技术分享图片

    shell模块

    在被管理端运行命令

    # ansible mysql -m shell -a ‘echo "abc123" | passwd --stdin wang‘  //创建密码

    技术分享图片

    script模块

    将本地脚本复制到被管理端运行

    # ansible-doc -s script
    # vi /opt/test.sh
    #!/bin/bash
    echo "hello ansible from script"> /opt/script.txt
    # chmod +x /opt/test.sh
    # ansible mysql -m script -a ‘/opt/test.sh‘

    技术分享图片

    setup模块

    # ansible mysql -m setup           //获取mysql组主机的facts信息

    技术分享图片

    自动化运维之Ansible的安装部署与命令模块

    标签:图片   use   star   自动化运维   cfengine   chmod   没有   cti   ESS   

    原文地址:http://blog.51cto.com/13620936/2153333

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!