Ansible自动化运维.ppt
《Ansible自动化运维.ppt》由会员分享,可在线阅读,更多相关《Ansible自动化运维.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、自动化运维实践Ansible目录CONTENTS1IT运维管理2Ansible介绍3Ansible常用操作4Ansible实例(playbooks)第一部分IT运维管理p传统运维p自动运维 运维工作是比较繁琐的,尤其是新系统上线的场景,一切都是从零开始。包括虚机的创建,主机名的修改,系统的初始化等等,在机器不多的情况下人工还能应付的过来,如果有上百台机器呢?最初也是用堆人的方法来做的。但这样的方式出错率高,而且有时还会有遗漏。只能通过相互检查的方式来验证,但这样就会花费更多的时间,相应的时间/人工成本也会上升。人工的方式因个人部署习惯千差万别,导致一些项目难以维护。传统运维带来的坑传统运维带来
2、的坑传统运维MySQLRedisMongodbu没有专门的工具为我们做这些事情,使用脚本语言(Python、shell)u逐渐有了运维自动化的一些工具,比如Fabric、Puppet、Chef、SaltStack、Ansible等u自动化运维平台运维自动化的演进自动运维运维自动化的演进运维自动化的演进1、某某组件坏了可以不用管继续睡觉 2、出现异常时点击一下就可立即恢复 3、与监控配合,系统挂了可以自动恢复运维自动化的目标运维自动化的目标第二部分pAnsible架构图Ansible介绍 pAnsible简介pAnsible任务执行流程Ansible简介 ansible是新出现的自动化运维工具,
3、基于Python开发,集合了众多老牌运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:(1)连接插件connection plugins:负责和被管控端实现通信;(2)host inventory:指定操作的主机,是一个配置文件里面定义管控的主机;(3)各种模块核心模块、command模块、自定义模块;(4)借助于插件完成记录日志邮件等功能;(5)playbook
4、:剧本执行多个任务时,可以让被管控端一次性运行多个任务。u(1)no agents:不需要在被管控主机上安装任何客户端;u(2)no server:无服务器端,使用时直接运行命令即可;u(3)modules in any languages:基于模块工作,可使用任意语言开发模块;u(4)yaml,not code:使用yaml语言定制剧本playbook;u(5)ssh by default:基于SSH工作;u(6)strong multi-tier solution:可实现多级指挥。Ansible特性u(1)轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;u(2)
5、批量任务执行可以写成脚本,而且不用分发到远程就可以执行;u(3)使用python编写,维护更简单,ruby语法过于复杂;u(4)支持sudo。Ansible优点Ansible架构图Ansible任务执行流程第三部分pAnsible安装配置pAnsible主机清单Ansible的常用操作pAnsible常用模块pYAML介绍Ansible安装配置u 使用yum/apt安装(推荐)-版本稍旧 yum/apt-get install ansibleu 使用pip安装(依赖pip,gcc等)-版本新 pip install ansible两种安装方式:/etc/ansible/ansible.cfgA
6、nsible配置Ansible主机清单-Inventory/etc/ansible/hostsInventory默认文件Ansible主机清单-主机与组正则匹配1、表示所有的主机使用all 或*Ansible主机清单-主机与组正则匹配2、通配符(*)和逻辑或(:)Ansible主机清单-主机与组正则匹配3、逻辑非和逻辑与Ansible常用模块uAd-hoc -ansible命令uPlaybook -YAMLAnsible运行任务的方式ansible 主机或组-m 模块名-a 模块参数 ansible参数主机和组:是在/etc/ansible/hosts 里进行指定的部分,动态Inventory
7、 使用的是脚本从外部应用里获取的主机模块名:可以通过ansible-doc-l 查看目前安装的模块,默认不指定时,使用的是command模块,具体可以查看/etc/ansible/ansible.cfg 的“#module_name=command”部分,默认模块可以在该配置文件中进行修改模块参数:可以通过“ansible-doc-s 模块名”查看具体的用法及后面的参数ansible参数:可以通过ansible命令的帮助信息里查看到,这里有很多参数可以供选择,如是否需要输入密码、是否sudo等。Ad-hocAnsible常用模块ansible all-m pingping模块ansible a
8、ll-m command-a uptimecommand模块ansible all-m service-a name=nginx state=restartedservice模块ansible all-m yum-a name=telnet state=presentyum模块ansible all-m shell-a cat/dev/null /var/log/nginx/access.logshell模块Ansible常用模块ansible all-m copy-a src=/root/nginx.conf desc=/etc/nginx/nginx.conf owner=nginx gr
9、oup=nginx mode=644copy模块ansible java-m unarchive-a src=java7.tar.gz copy=yes dest=/usr/java owner=root group=rootunarchive模块ansible all-m replace-a path=/etc/hosts regexp=10.10 replace=10.12replace模块ansible mysql-m lineinfile-a dest=/etc/hosts line=10.10.31.181 db1lineinfile模块ansible java-m file src
10、=/usr/java/jdk1.7 dest=/usr/java/jdk state=link owner=root group=rootfile模块YAML介绍 YAML 是“Yet Another Markup Language”(仍是一种置标语言)的头字母简写,目前一般专门用来写配置文件的语言,对于人类很友好。YAMLYAML介绍大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空格数目不重要,只要相同层级的元素左侧对齐即可基本语法规则对象:键值对的集合,又称为映射(mapping)/哈希(hashes)/字典(dictionary)数组:一组按次序排列的值,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Ansible 自动化
限制150内