ansible 基础应用与常见模块

ansible中文手册:http://www.simlinux.com/books/Ansible-notes.pdf

1,运维工具简介

运维工具:

系统安装(物理机、虚拟机)--> 程序安装、配置、服务启动 --> 批量操作(批量运行命令) --> 程序发布 --> 监控

ansible 能够实现:程序安装、配置、服务启动 --> 批量操作(批量运行命令) --> 程序发布

ansible的核心组件:

ansible core

host iventory

core modules

custom modules

playbook (yaml, jinjia2)

connect plugin

2、ansible简介

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

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

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

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

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

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

3,ansible工作机制

4,ansible的特性

基于Python语言实现,由Paramiko, PyYAML和Jinjia2三个关键模块;

特性

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

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

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

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

(5)、ssh by default:基于SSH工作或在inventory文件中指定账号和密码;

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

5, 安装:依赖于epel源

配置文件:/etc/ansible/ansible.cfg

Invertory: /etc/ansible/hosts

配置 Invertory: /etc/ansible/hosts

6,使用ansible,常用模块应用

如何查看模块帮助:

ansible-doc -l   支持的模块

ansible-doc -s MODULE_NAME   模块的帮助信息

ansible命令应用基础:

语法: ansible <host-pattern> [-f forks] [-m module_name] [-a args]

-f forks:启动的并发线程数;

-m module_name: 要使用的模块;

-a args: 模块特有的参数;

常见模块:

command: 命令模块,默认模块,用于在远程执行命令;

ansible all -a 'date'

cron:

state:

present: 安装

absent: 移除

# ansible websrvs -m cron -a 'minute="*/10" job="/bin/echo hell" name="test cron job"'

# ansible grb -m cron -a 'name="test cron job" state=absent'   移除

user

name=: 指明创建的用户的名字;

# ansible websrvs -m user -a 'name=mysql uid=306 system=yes group=mysql'

group:

# ansible websrvs -m group -a 'name=mysql gid=306 system=yes'

copy:复制文件

src=: 定义本地源文件路径

dest=: 定义远程目标文件路径

content=: 取代src=,表示直接用此处指定的信息生成为目标文件内容;

# ansible all -m copy -a 'src=/etc/fstab dest=/tmp/fstab.ansbile owner=root mode=640'

# ansible all -m copy -a 'content="Hello Ansible\nHi MageEdu" dest=/tmp/test.ansible'

file: 设定文件属性

path=: 指定文件路径,可以使用name或dest来替换;

创建文件的符号链接:

src=: 指明源文件

path=: 指明符号链接文件路径

# ansible all -m file -a 'src=/tmp/fstab.ansbile path=/tmp/fstab.link  state=link'

#ansible all -m file -a "src=/etc/resolv.conf dest=/tmp/resolv.conf state=link"

ping:测试指定主机是否能连接;

#ansible all -m ping

service:指定运行状态;

enabled=: 是否开机自动启动,取值为true或者false;

name=: 服务名称

state=: 状态,取值有started, stopped, restarted;

#ansible all -m service -a 'enabled=true name=httpd state=started'  #开机启动httpd,并且现在启动httpd

shell:在远程主机上运行命令

尤其是用到管道等功能的复杂命令;

script:将本地脚本复制到远程主机并运行之;

注意:1.7版本要使用相对路径指定脚本,1.9可以使用绝对路径。

# ansible all -m script -a '/tmp/ansible.sh'

yum:安装程序包

name=: 指明要安装的程序包,可以带上版本号;

state=: present, latest表示安装,absent表示卸载;

#ansible all -m yum -a 'name=ftp state=present'

setup: 收集远程主机的facts

每个被管理节点在接收并运行管理命令之前,会将自己主机相关信息,如操作系统版本、IP地址等报告给远程的ansbile主机;

转载于:https://blog.51cto.com/disheng/1732328

L13 ansible 基础应用与常见模块相关推荐

  1. ansible常见模块及使用方法

    目录 1.查看支持的模块 2.获取模块的帮助 3.3个远程命令模块的区别 3.1.command模块 3.2.shell模块 3.3.script模块 4.copy模块 4.1. copy模块应用案例 ...

  2. Ansible基础和常用模块(一)

    文章目录 1. Ansible 概述 2. Ansible 安装配置 3. Ansible Inventory 清单 4. Ansible ad-hoc 5. Ansible 功能模块 5.1 Ans ...

  3. 36: ansible基础 、 Ansible ad-hoc 、 总结和答疑

    Top NSD AUTOMATION DAY01 案例1:部署Ansible 案例2:Ansible ad-hoc应用一 案例3:Ansible ad-hoc应用二 案例4:Ansible ad-ho ...

  4. ansible基础-playbooks

    1. playbooks介绍 如果说ansible的modules是工具,inventory配置文件是原材料,那么playbook就是一封说明书,这里会记录任务是如何如何执行的,当然如果你愿意,这里也 ...

  5. ansible基础-Jinja2模版 | 过滤器

    Jinja2模版介绍 注:本文demo使用ansible2.7稳定版 在ansible基础-变量的「8.2 模版使用变量」章节中关于模版与变量也有所提及,有兴趣的同学可以去回顾一下. ansible通 ...

  6. Python基础(七)--模块和包

    目录 Python基础(七)--模块和包 1 模块 1.1 什么是模块 1.2 模块的使用 1.3 模块的搜索路径 1.4 模块的缓存 2 包 2.1 什么是包 2.2 包的使用 3 常用模块 3.1 ...

  7. 《Ansible权威指南 》一第2章 Ansible基础元素介绍

    本节书摘来自华章出版社<Ansible权威指南 >一书中的第2章,第2.1节,李松涛 魏 巍 甘 捷 著更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第2章 ...

  8. Web前端开发之“常见模块你真的很了解吗?”

    本文节选自<编写高质量代码--Web前端开发修炼之道 > 3.4 常见模块你真的很了解吗 3.4.1 标题和内容 标题和内容模块如图3-13 所示. 图3-13 标题和内容模块 这种标题配 ...

  9. python基础—正则表达式即re模块

    正则表达式(regular expression),就是字符匹配模式,而这个匹配规则在我们写爬虫进行数据提取,或者进行数据可视化进行数据清洗时经常用到,多样化的匹配规则在复杂的字符的情况提取数据时助我 ...

  10. 计算机软硬件故障排除知识,计算机软硬件基础知识及常见故障排除方法(精选).doc...

    文档介绍: 计算机软硬件基础知识及常见故障排除方法 CPU的主频.外频和倍频3者的关系:主频=外频×倍频 计算机的主板一般有南北桥两片芯片,南桥芯片提供对键盘控制器.实时时钟控制器.USB.高级能源管 ...

最新文章

  1. ---Mybatis3学习笔记(2)
  2. PHP学习笔记——Php文件引入
  3. Android之用UncaughtExceptionHandler实现保存崩溃日志到sdcard目录下的文件夹
  4. ubuntu 修改host,以便在本地调试
  5. m3u:直播流的html接近下载
  6. 2018.9.10.Matlab实验二:Matlab基本运算
  7. java多端登录_【Java】一个登录功能也能玩出这么多花样?sa-token带你轻松搞定多地登录、单地登录、同端互斥登录...
  8. 启动tomcat和java步骤
  9. 转:你真的懂iOS的autorelease吗?
  10. Codeforces 486D Valid Sets (树型DP)
  11. git上传本地文件方法
  12. wincc怎么做数据库_WINCC与数据库连接
  13. 腾讯招聘爬虫(Scrapy框架)
  14. 85. Maximal Rectangle最大矩形
  15. Virtual host / experienced an error on node rabbit@ xx and may be inaccessible Totals问题的解决
  16. 万人「变阵冲刺」,京东数科没有终点
  17. 基于C语言编写的超市管理系统
  18. 3ds Max导出OBJ的mtl贴图路径不正确
  19. 矩阵的特性和运算法则
  20. ssl证书购买后如何认证签发

热门文章

  1. Smartbi报表工具实现并查询(不去重)
  2. markdown流程图语法
  3. 【视频分享】尚学堂---数据结构和算法
  4. 超简单集成华为HMS Scankit 扫码SDK实现扫一扫二维码
  5. qq留言板html代码,qq主人寄语代码_QQ留言板主人寄语
  6. C 小鑫の日常系列故事(七)——小纸条 SDUT
  7. 离散数学总复习精华版(最全 最简单易懂)已完结
  8. Zynga研发之道探秘:用数据说话
  9. 深度学习、机器学习领域毕业设计选题方法及建议
  10. win10应用及应用商店闪退有效解决办法