ansible实现自动化运维

news/2024/7/3 6:31:37

简介

  • 功能强大的自动化运维工具,集合了puppet、cfengine、chef、func、fabric等功能;

  • 能实现多节点发布和远程任务执行等功能,可满足日常自动化运维需求;


特性

  • No agents:不需要在被管控主机上安装任意客户端;

  • No server:无服务器端,使用时直接运行命令即可;

  • Modules in any languages:基于模块工作,可使用任意语言开发模块

  • YAML,not code:使用yaml语言定制剧本playbook;

  • SSH by default:基于SSH工作;

  • Strong multi-tier solution:可实现多级指挥;


基本架构

wKiom1NUVw7QQE51AAOihDCa3N4276.jpg


安装方法

1
2
3
4
5
6
7
8
9
10
# rpm包安装,可在pkgs.org或rpmfind.net上找寻rpm包
yum --nogpgcheck localinstall ansible-1.5.4-1.el6.noarch.rpm
# 或源码编译安装
yum -y  install  python-jinja2 PyYAML python-paramiko python-babel python-crypto
tar  xf ansible-1.5.4. tar .gz
cd  ansible-1.5.4
python setup.py build
python setup.py  install
mkdir  /etc/ansible
cp  -r examples/*  /etc/ansible

配置文件

  • /etc/ansible/ansible.cfg # 主配置文件,可不修改

  • /etc/ansible/hosts # 添加需操作的主机目录


查看各模块的使用方法

1
2
3
4
ansible-doc [options] [modules]
# 主要选项有:
-l或--list  # 列出可用的模块
-s或--snippet  #显示指定模块的简略使用方法


使用格式

1
2
3
4
5
ansible <host-pattern> [-f forks] [-m module] [-a args]
host-pattern  # 可以是all,或者配置文件中的主机组名
-f forks  # 指定并行处理的进程数
-m module  # 指定使用的模块,默认模块为command
-a args  # 指定模块的参数


使用案例

1
2
3
4
5
6
7
8
9
10
11
ansible all -m  ping  # ping操作
ansible webservers -a ‘ date ’ (可省略-m  command # 执行date命令
ansible dbservers -m copy -a “src= /root/ansible .rpm dest= /tmp/ ”  # 复制文件
ansible all -m  cron  -a ‘name=”custom job” minute=* /3  day=* month=* weekday=* job=” /usr/sbin/ntpdate  172.16.0.1”’  # 配置crontab任务
ansible all -m group -a “gid=306 system= yes  name=mysql”  # 增加组和用户
ansible corosync -m yum -a “name=pacemaker state=present”  # 通过yum安装程序
ansible all -m service -a “state=started name=httpd enabled= yes ”  # 配置服务开启启动
# 或利用playbook配置文件yaml批量执行任务:
编写playbook文件,如 test .yaml
执行:ansible-playbook  test .yaml
注:所谓playbook(俗称“剧本”),就是将批量任务以yaml格式写入文件中,通过ansible-playbook命令一起执行


ansible实用配置案例

几点重要概念

  • playbook的组成:playbook是由一个或多个“play”组成的列表,可以让它们联同起来按事先编排的机制执行;所谓task无非是调用ansible的一个module,而在模块参数中可以使用变量;模块执行是幂等的,这意味着多次执行是安全的,因为其结果均一致;

  • 执行模型:task list中的各任务按次序逐个在hosts中指定的所有主机上执行,即在所有主机上完成第一个任务后再开始第二个。在顺序运行某playbook时,如果中途发生错误,所有已执行任务都将回滚,因此,在修改playbook后重新执行一次即可;

  • task组成:每个task都应该有其name,用于playbook的执行结果输出,建议其内容尽可能清晰地描述任务执行步骤。如果未提供name,则action的结果将用于输出;

  • notify指定handler的执行机制:“notify”这个action可用于在每个play的最后被触发,在notify中列出的操作称为handler,仅在所有的变化发生完成后一次性地执行指定操作;

具体配置文件(corosync.yaml)

理解此文件有助于后期利用ansible自动化安装corosync

wKiom1NUWD3S_EiHAA15a46_8kc191.jpg










本文转自 xxrenzhe11 51CTO博客,原文链接:http://blog.51cto.com/xxrenzhe/1400023,如需转载请自行联系原作者

http://www.niftyadmin.cn/n/1999616.html

相关文章

html中css基本语法,【HTML+CSS】(1)基本语法

HTML基金会他强调标签&#xff0c;加粗标签短文本引用。长文本引用&#xff0c;这两个标签会让文字带双引號。空格换行&#xff0c;水平横线地址标签单行代码。多行代码&#xff0c;能够增加代码的标签。让显示更加好看无序列表。有序列表&#xff1a; 列表子元素连接标签&…

PHP 文件操作

PHP 文件操作 PHP3.0中的文件操作函数大体和C的类似,但有一些扩充,特别是除了支持对本机文件的访问外,也支持对HTTP和FTP的URL进行访问,只要把这些URL作为文件名传递给文件操作函数就可以了. 主要的文件操作函数有: (1)fclose,feof,fgetc,fgets,fopen,fputs,fseek,ftell,mkdi…

硬件结构(下):SAS扩展器不足导致无奈

Dell EqualLogic PS5000XV的控制器设计十分紧凑&#xff0c;在较小的空间里蕴含着比Dell PowerVault MD3000i的控制器更大的能量。PS5000XV每个控制器具有1GB DDR ECC内存&#xff08;双控制器合计2GB&#xff09;&#xff0c;是MD3000i的两倍&#xff0c;并同样受到锂离子电池…

走近 STL

走近 STL作者&#xff1a;陶汉军  本文面向的读者&#xff1a;学习过C程序设计语言&#xff08;也就是说学习过Template&#xff09;&#xff0c;但是还没有接触过STL的STL的初学者。这实际上是我学习STL的一篇笔记&#xff0c;老鸟就不用看了。什么是泛型程序设计  我们可…

计算机管理文件的教学设计,《使用计算机管理文件》教学设计

《使用计算机管理文件》边院镇过村中学 刘涛【教材分析】本课是青岛版《初中信息技术》七年级上册第1单元信息与信息技术的第4课。主要内容是介绍了文件的命名规则和文件管理形式&#xff0c;认识常用文件类型的扩展名和图标&#xff0c;资源管理器的使用方法&#xff0c;用资源…

iSCSI Target和Initiator安装与操作步骤详解

iSCSI Target 编译安装过程 1. 解压&#xff1a; tar zxvf iscsitarget-1.4.18 .t ar.gz 2. cd iscsitarget-1.4.18 3. Linux2.6.32的内核太新了最新的 iSCSI Target 版本 1.4.18 还没有支持&#xff0c;网上有高手做了相应的补丁&#xff0c;于是打上补丁 patch -p1 <iscsi…

合肥工业大学宣城校区计算机大赛,初赛公示_2020年全国高校计算机能力挑战赛...

姓名学校奖项彭正元重庆大学西南赛区 一等奖肖念昕阜阳师范大学华东赛区 一等奖鲁兆成山东财经大学华东赛区 一等奖杨志杰西北师范大学西北赛区 一等奖韩宇博河南大学华中赛区 一等奖侯光华四川农业大学西南赛区 一等奖何亮重庆邮电大学西南赛区 一等奖田平安武汉理工大学华中赛…

电子计算机问世至今 依然具有,09-10计算机组成原理复习题

超好的资料09-10两个年级计算机科学与技术专业 《计算机组成原理》期末复习思考题(仅供参考)一&#xff0e;选择题第1章 计算机系统概论1.电子计算机问世至今&#xff0c;新型机器不断推陈出新&#xff0c;不管怎么更新&#xff0c;依然具有“存储程序”的特点&#xff0c;最早…