zoukankan      html  css  js  c++  java
  • Ansible安装配置及命令使用详解

    Ansible和saltstack目前市面上一些其它的项目管理工具有很大的不同,它的设计初衷就是为了更方便、快捷的进行配置管理。它易于安装和使用、语法也非常简单易学。你可以用Ansible将平常复杂的配置工作变得简单,变得更加标准化更容易控制。

    Ansible只需要在一台普通的服务器上运行即可,不需要在被管控的服务器上安装客户端。因为它是基于SSH的,Linux服务器离不开SSH,所以Ansible不需要为配置工作添加额外的支持。 你可以通过命令行来使用Ansible,运行Ansible的服务器这里俗称“管理节点”;通过Ansible进行管理的服务器俗称“受控节点”。

    Ansible是一款极为灵活的开源工具套件,能够大大简化Unix管理员的自动化配置管理与流程控制方式。它利用推送方式对客户系统加以配置,这样所有工作都可在主服务器端完成。其命令行机制同样非常强大,允许大家利用商业许可Web UI实现授权管理与配置。

    Ansible优点:

    1) 轻量级,不需要去客户端安装agent,更新时,只需要在操作机上进行一次更新即可,采用SSH协议(免密钥)。        

    2) 批量任务执行可以写成脚本,而且不用分发到远程就可以执行。        

    3) 使用python编写的,维护更简单。        

    4) 支持sudo普通用户命令。

    Ansible安装配置

    Ansible 能够安装到 Linux、BSD、Mac OS X 等平台,Python 版本最低要求为 2.6。

    CentOS直接使用yum安装即可,安装之前先安装epel源码。

    rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm 

    然后执行命令: yum install ansible -y 安装即可。

    安装完后正式来使用,ansible默认配置文件路径为:

    /etc/ansible:

    常见的命令参数有:

    默认hosts内容可以配置分组,我们可以定义各种ip及规则,内容如下(自动化的前提就是ssh互通免密钥):

    • Ansible日常使用

    ansible -i  /etc/ansible/hosts  all  -a  “date”

    可以单独匹配某个组

    这里可以单独匹配ip段

    ansible主要参数如下:

    -u  username          指定ssh连接的用户名,即执行后面命令的用户

    -i  inventory_file    指定所使用的inventory文件的位置,默认为/etc/ansible/hosts

    -m  module     指定使用的模块,默认为command,常见模块有command、shell、script、yum、copy等等

    -f  10                指定并发数,并发量大的时候,提高该值

    --sudo  [-k]       当需要root权限执行的化,-k参数用来输入root密码。

    -a            指定模块的参数,可以是命令等等。

    • Ansible正则表达式使用

    ansible  192.168.33.*  -m  command  -a  "df -h"

    • 远程批量拷贝文件或者目录

    ansible all -m copy -a 'src=/etc/passwd  dest=/tmp/  mode=755 owner=root' 

    • Ansible YUM远程批量安装

    Ansible  192.168.*  -m  yum -a  "name=sysstat,screen,ntpdate   state=installed"

     

     Playbook配置管理

    我们使用如上这些命令可以快速利用Ansible的工具编写脚本、从而以非常简便的方式实现任务处理的自动化与流程化。

    除此之外,我们还可以创建Ansible Playbook以收集命令与任务集,这样能够大大降低管理工作的复杂程度。

    Playbook采用YAML语法结构,因此它们一般比较易于阅读并加以配置,如下简单案例使用playbook实现在客户端安装screen软件。

    /etc/ansible/目录下,新建screen.yaml文件,内容如下:

    - hosts: all

      remote_user: root

      tasks:

      - name: yum install screen

        shell: yum install screen -y

    文件解析:-hosts:all指定对所有hosts生效,remote_user表示远程root,tasks表示需要执行的任务;name显示的名称,shell后面接:需要在远程客户端执行的命令。可以写多个命令,以;分号隔开即可,例如 shell: yum install screen -y ;mkdir /tmp/`date +%Y%m%d`

    当然了,我们还可以定义各种不同的playbook类型,如下我们可以定义源码安装Nginx或者yum安装LAMP论坛。

    执行结果如下图:

  • 相关阅读:
    MemCached总结二:数据管理指令
    MemCached总结一:Unbutu操作系统下memcached服务器安装和telnet方式连接memcache
    Laravel5 开启Debug
    状压dp
    树形dp
    区间dp
    线性dp
    背包九讲
    dp求解各种子串子序列
    线段树详解
  • 原文地址:https://www.cnblogs.com/zhangan/p/10910984.html
Copyright © 2011-2022 走看看