自动化运维工具 Ansible 的详细部署

栏目: 服务器 · 发布时间: 6年前

内容简介:1、部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;2、默认使用SSH协议对设备进行管理;3、有大量常规运维操作模块,可实现日常绝大部分操作。
  • Ansible 的来历
  • Ansible是新出现的自动化运维工具,基于 Python 开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
  • Ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,Ansible只是提供一种框架。Ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。Ansible目前已经已经被红帽官方收购,是自动化运维 工具 中大家认可度最高的,并且上手容易,学习简单。是每位运维工程师必须掌握的技能之一。
  • Ansible 的特点

1、部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;

2、默认使用SSH协议对设备进行管理;

3、有大量常规运维操作模块,可实现日常绝大部分操作。

4、配置简单、功能强大、扩展性强;

5、支持API及自定义模块,可通过Python轻松扩展;

6、通过Playbooks来定制强大的配置、状态管理;

7、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;

8、提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台。

  • 系统环境
主机名 操作系统 IP地址
Ansible Server Centos 7.3 X86_64 192.168.6.117
Client1 Centos 7.3 X86_64 192.168.1.130
Client2 Centos 7.3 X86_64 192.168.1.129

  • 安装服务
  • 在 Ansible Server 上安装 Ansible

    Ansible是通过ssh远程连接的,所以不需要在被管理端安装Client

    # yum install -y epel-release  //安装epel源
    # yum install ansible -y
    # ansible --version          //查看ansible版本
    # yum install tree -y
    # tree /etc/ansible/      //树状结构展示文件夹
    /etc/ansible/
    ├── ansible.cfg    #ansible的配置文件
    ├── hosts         #ansible的主仓库,用于存储需要管理的远程主机的相关信息
    └── roles          #角色
  • 配置主机清单

    # cd /etc/ansible
    # vim hosts       //配置主机清单
    [www]                           //自定义一个组名
    192.168.6.130     //添加被管理主机的IP
    [wzn]
    192.168.6.129
  • 设置SSH无密码登录

    # ssh-keygen -t rsa
    # ssh-copy-id root@192.168.6.129
    # ssh-copy-id root@192.168.6.130    //配置密钥对验证
    ↓↓免交互代理 
    # ssh-agent bash
    # ssh-add

    自动化运维工具 Ansible 的详细部署

  • Ansible 的命令
  • command模块(用于被管理主机上运行命令)
  • 命令格式:ansible [主机] [-m 模块] [-a args]

    # ansible-doc -l     //列出所有已安装的模块 注:按q退出
    # ansible-doc -s yum   //-s列出yum模块描述信息和操作动作
    # ansible 192.168.200.129 -m command -a 'date'  //指定ip执行date
    # ansible abc -m command -a 'date'       //指定分类执行date
    # ansible all -m command -a 'date'        //所有hosts主机执行date命令
    # ansible all -a 'ls /'      如果不加-m模块,则默认运行command模块

    自动化运维工具 Ansible 的详细部署

  • cron模块
  • 用于定义计划性任务
  • 两种状态(state):present表示添加(可以省略),absent表示移除。

    # ansible-doc -s cron      //查看cron模块信息
    # ansible www -m cron -a 'minute="*/1" job="/bin/echo heihei" name="test cron job"'
    # ansible www -a 'crontab -l'
    # ansible www -m cron -a 'name="test cron job" state=absent'    //移除计划任务,假如该计划任务没有取名字,name=None即可

    自动化运维工具 Ansible 的详细部署

  • user模块
  • 用于创建新用户和更改、删除已存在的用户
  • user模块是请求的是useradd, userdel, usermod三个指令

    # ansible-doc -s user
    # ansible www -m user -a 'name="test01"'    //创建用户test01
    # ansible www -m command -a 'tail /etc/passwd'
    # ansible www -m user -a 'name="test01" state=absent'    //删除用户test01

    自动化运维工具 Ansible 的详细部署

  • group模块
  • 对用户组进行管理
  • group模块请求的是groupadd, groupdel, groupmod 三个指令

    # ansible-doc -s group
    # ansible www -m group -a 'name=mysql gid=306 system=yes'    //创建 mysql 组 将mysql用户添加进去
    # ansible www -a 'tail /etc/group'
    # ansible www -m user -a 'name=test01 uid=306 system=yes group=mysql'
    # ansible www -a 'tail /etc/passwd'
    # ansible www -a 'id test01'

    自动化运维工具 Ansible 的详细部署

  • copy模块
  • 用于实现文件复制和批量下发文件(src:本地路径 dest:被管理主机文件路径)

    # ansible-doc -s copy
    # ansible www -m copy -a 'src=/etc/fstab dest=/opt/fstab.back owner=root mode=640'
    //(属主root  权限640)
    # ansible www -a 'ls -l /opt'
    # ansible www -a 'cat /opt/fstab.back'
    # ansible www -m copy -a 'content="hello heihei!"dest=/opt/fstab.back' 
    //将hello heihei!写入/opt/fstab.back
    # ansible www -a 'cat /opt/fstab.back'

    自动化运维工具 Ansible 的详细部署

  • file模块
  • 用于设置文件属性 (path:文件路径 src:定义源文件路径 )

    # ansible-doc -s file
    # ansible www -m user -a 'name=mysql system=yes'
    # ansible www -m group -a 'name=mysql system=yes'
    # ansible www -m file -a 'owner=mysql group=mysql mode=644 path=/opt/fstab.back'        //修改文件的属主属组权限等
    # ansible www -m file -a 'path=/opt/fstab.link src=/opt/fstab.back state=link'      //设置/opt/fstab.link为/opt/fstab.back的链接文件
    # ansible www -m file -a "path=/opt/fstab.back state=absent"               //删除一个文件
    # ansible www -m file -a "path=/opt/test state=touch"             创建一个文件

  • ping模块
  • 用于检测指定主机的连通性

    # ansible all -m ping

    自动化运维工具 Ansible 的详细部署

  • shell模块
  • 可以在被管理主机上运行命令,并支持像管道符号等功能的复杂命令
  • 可以创建用户使用无交互模式给用户设置密码

    # ansible-doc -s shell
    # ansible www -m shell -a 'echo abc123|passwd --stdin mysql'

    自动化运维工具 Ansible 的详细部署

  • service模块
  • 用来控制管理服务的运行状态
  • enabled:开机自启动,取值ture或false ,name:定义服务名称,state指定服务状态取值分别为started 、stoped、restarted

    # ansible-doc -s service
    # ansible www -m service -a 'enabled=true name=httpd state=started'        //启动httpd服务
    # ansible www -a 'systemctl status httpd'        //查看web服务器httpd运行状态

    自动化运维工具 Ansible 的详细部署

  • script模块
  • 可以将本地脚本复制到被管理主机上进行执行。需要注意使用相对路径来指定脚本

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

    自动化运维工具 Ansible 的详细部署

  • yum模块
  • 负责在被管理主机上安装与卸载软件包,需要提前在每个节点配置自己的YUM仓库
  • name:指定安装的软件包,可以带上版本号,否则安装最新版本
  • state :指定安装的软件包状态 (present、latest 表示安装 , absent 表示卸载)
    # ansible-doc -s yum
    # ansible www -m yum -a 'name=zsh'           //yum安装zsh
    # ansible www -a 'rpm -q zsh'
    # ansible www -m yum -a 'name=zsh state=absent'     //卸载zsh
    # ansible www -a 'rpm -q zsh'

    自动化运维工具 Ansible 的详细部署

自动化运维工具 Ansible 的详细部署

  • setup模块
  • 用于收集、查看被管理主机的facts(facts是Ansible采集被管理主机设备信息的一个功能)
    # ansible-doc -s setup
    # ansible www -m setup

    自动化运维工具 Ansible 的详细部署


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Parsing Techniques

Parsing Techniques

Dick Grune、Ceriel J.H. Jacobs / Springer / 2010-2-12 / USD 109.00

This second edition of Grune and Jacobs' brilliant work presents new developments and discoveries that have been made in the field. Parsing, also referred to as syntax analysis, has been and continues......一起来看看 《Parsing Techniques》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

随机密码生成器
随机密码生成器

多种字符组合密码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具