一、介绍

特性

(1)、no agents:不需要在被管控主机上安装任何客户端;

(2)、no server:无服务器端,使用时直接运行命令即可;

(3)、modules in any languages:基于模块工作,可使用任意语言开发模块;

(4)、yaml,not code:使用yaml语言定制剧本playbook;

(5)、ssh by default:基于SSH工作;

(6)、strong multi-tier solution:可实现多级指挥。

优点

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

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

(3)、使用python编写,维护更简单,ruby语法过于复杂;

(4)、支持sudo。

二、安装

因为ansible已经被redhat收购,所以可以直接用yum安装,先通过yum list |grep ansible看一下yum源,然后安装

yum install ansible ansible-doc -y

安装好之后,通过ssh-keygen来创建密钥,把生成的公钥放到对应目标机器对应的用户下面。

修改ansible配置文件,vim /etc/ansible/hosts,添加一个组(相当于是进行分组操作,如web、db组),组下面为对应机器ip或者主机名(需在/etc/hosts里面配置)

三、ansible远程执行命令

ansible testhost -m command -a "hostname" 

PS:testhost 为定义的一个组(这个组下面所有机器都会执行),-m command 通过command这个模块来操作,-a "hostname"为操作的命令,也可以用shell来代替command

shell模块,还支持远程执行命令并且带管道

ansible testhost -m shell -a "cat /etc/passwd |wc -l"

四、ansible拷贝文件或目录

ansible testhost -m copy -a "src=/etc/passwd dest=/tmp/ansible/1.txt owner=root group=root mode=0755"

PS:把文件分发到目标机器上面,如果目标机器不存在/tmp/ansible这个目录,则分发失败,如果存在则把passwd重命名为1.txt,如果dest=/tmp/ansible,则分发之后,文件名不变

ansible testhost -m copy -a "src=/etc/ansible dest=/tmp/ansible owner=root group=root mode=0755"

PS:把目录分发到目标机器上面,不管dest里面定义的ansible目录是否存在,都会把原目录放在该目录下面,相当于/tmp/ansible/ansible

五、ansible远程执行脚本

1.把脚本分发到各个机器上面去

ansible testhost -m copy -a "src=/tmp/test.sh dest=/tmp/test.sh mode=0755"

2.批量执行该shell脚本

ansible testhost -m shell -a "/tmp/test.sh"

六、ansible管理任务计划

1.添加cron计划

ansible testhost -m cron -a "name='test cron' job='/bin/touch /tmp/1.txt' minute=10 month=12"

PS: 表示在crontab里面添加一条记录为:

#Ansible:test cron
10 * * 12 * /bin/touch /tmp/1.txt

minute表示分钟,hour表示小时,day表示日期,month表示月份,weekday表示周,如果没写则默认为 *

2.删除cron计划

ansible testhost -m cron -a "name='test cron' state=absent"

PS: 只能删除该crontab,不能修改,也不能自己crontab -e去修改,不然ansible会操作不了该crontab

七、ansible安装、删除rpm包等管理

ansible testhost -m yum -a "name=nginx state=installed"

PS: 相当于yum intall nginx -y,state默认为installed,如果state=removed表示卸载该rpm包

ansible testhost -m service -a "name=nginx state=started enabled=yes"

PS:启动nginx服务,state可以为started/restarted/stopped/reloaded,enabled为yes表示开机启动

8、ansible-doc

1. 列出所有的模块

ansible-doc -l

2.查看指定模块的文档

ansible-doc modulename

ansible一些基本操作的更多相关文章

  1. ansible playbook基本操作

    一.ansible playbook简单使用 相当于是把模块写入到配置文件里面 vim /etc/ansible/test.yml //写入如下内容: --- - hosts: 127.0.0.1 r ...

  2. ansible基本操作

    ansible优点:redhat自带工具,可通过rpm或yum直接安装:客户端免安装:操作通过ssh验证操作:可以通过自定义hosts文件对可操作主机进行分类,方便批量操作 #ansible操作格式, ...

  3. Ansible常用模块基本操作

    Ansible是一个系列文章,我会尽量以通俗易懂.诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些. 前言 对于任何一个框架,一个应用,为了更便于推广,便于使用,便于商业化,都会顺便提 ...

  4. 使用ansible kubectl插件连接kubernetes pod以及实现原理

    ansible kubectl connection plugin ansible是目前业界非常火热的自动化运维工具.ansible可以通过ssh连接到目标机器上,从而完成指定的命令或者操作. 在ku ...

  5. ansible笔记(4):常用模块之文件操作

    前文中,我们已经介绍了怎样使用模块,而且我们知道,ansible有很多模块,每个模块都有自己的功能,"模块"涉及到的方向比较多,所以对于个人来说,并没有必要了解所有的模块,我们只需 ...

  6. 自动化运维工具Ansible

    一.简介 当下有许多的运维自动化工具( 配置管理 ),例如:Ansible.SaltStack.Puppet.Fabric 等. Ansible 一种集成 IT 系统的配置管理.应用部署.执行特定任务 ...

  7. 使用ansible对思科交换机备份

    先决条件 - 了解ansible基本操作 - 了解网络设备相关操作 - 了解linux相关操作 安装 安装EPEL yum install https://dl.fedoraproject.org/p ...

  8. 运维自动化之ansible

    Ansible简介 Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用.配置.编排task(持续交付.无宕机 ...

  9. Ansible 自动化工具入门

    Ansible 配置 Ansible 简单管理 下面的小实验,我们将采用以下的IP地址规划,请自行配置好. [实验环境] [状态] [主机列表] [python版本] 控制机 192.168.1.10 ...

随机推荐

  1. 实际用户ID,有效用户ID,保存的设置用户ID

    Unix中常见的几个概念,下面做一个解释. 首先需要明确一点,这几个概念都是和进程相关的. real user ID表示的是实际上进程的执行者是谁,effective user ID主要用于校验该进程 ...

  2. insmod 内核模块参数传递

    对于如何向模块传递参数,Linux kernel 提供了一个简单的框架.其允许驱动程序声明参数,并且用户在系统启动或模块装载时为参数指定相应值,在驱动程序里,参数的用法如同全局变量. 通过宏modul ...

  3. iOS开发之--当遇到tableView整体上移时的解决方案

    方案一在使用了navigationController后,当界面进行跳转往返后,时而会出现tableView上移的情况,通常会自动上移64个像素,那么这种情况,我们可以关闭tableView的自动适配 ...

  4. JVM内存简析

    1.程序计数器: 这是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器,线程私有. 2.Java虚拟机栈: 它是Java方法执行的内存模型,每一个方法被调用到执行完成的过程,就 ...

  5. 160506、Spring mvc新手入门(11)-返回json 字符串的其他方式

    Spring MVC返回 json字符串的方式有很多种方法,这里介绍最简单,也是最常使用的两种方式 一.使用  PrintWriter printWriter  直接输出字符串到返回结果中    不需 ...

  6. windows下安装google protocbuf

    首先安装setuptools: windows:======== 1.下载 ez_setup.py,安装setuptoolshttps://bitbucket.org/pypa/setuptools/ ...

  7. vim学习选取多行(转)

    在可视化模式下,可以对一个文本块的整体进行操作.例如,首先高亮选中一部分文本,然后用d命令删除这个文本块.可视化模式的好处在于,你可以在做改动之前,就看到操作将影响的文本.可视化模式可以分为以下三种: ...

  8. [iOS微博项目 - 4.4] - 会员标识

    github: https://github.com/hellovoidworld/HVWWeibo A.会员标识 1.需求 给vip会员打上会员标识 不同等级的vip会员使用不同的标识 使用橙色作为 ...

  9. Storm-源码分析- hook (backtype.storm.hooks)

    task hook 在某些task事件发生时, 如果用户希望执行一些额外的逻辑, 就需要使用hook 当前定义如下事件, emit, cleanup, spoutAck-- 用户只需要开发实现ITas ...

  10. Android 关于异步Http请求,以及编码问题

    大家都知道可以使用一个继承了AsyncTask的类去实现异步操作,再有个Http请求的类就可以解决了,现在我说下里面的细节问题,比如长时间无反应,编码问题,以及一些HTML相关的处理. 首先说下长时间 ...