云计算实操训练营(五):《自动化运维ansible部署及应用》

课前思考:

了解什么是ansible?

Ansible能做什么?

为什么要使用自动化运维工具?

Ansible的优点有哪些?

什么是ansible


几乎万能的自动化工具!

Ansible基于Python语言实现,由paramiko和PyYAML两个关键模块构建。ansible主要承担的工作有以下几种:

  • 配置管理
  • 服务即时开通
  • 应用部署
  • 流程编排
  • 监控告警
  • 日志记录



自动化运维工具对比


Ansible、Puppet、SaltStack技术特性比较表



Ansible优点


  • Agentless,去中心化
  • Stupied Simple ,上手简单,学习曲线平滑
  • SSH by default ,安全,无需安装客户端
  • 配置简单、功能强大、扩展性强
  • 支持API及自定义模块,可通过Python轻松扩展
  • 通过Playbooks来定制强大的配置、状态管理
  • 提供一个功能强大、操作性强的Web管理界面(ansible tower)


playbooks


  • Playbooks 是 Ansible的配置,部署,编排语言。他们可以被描述为一个需要希望远程主机执行命令的方案,或者一组IT程序运行的命令集合
  • 如果Ansible模块你是工作室中的工具,那么 playbooks 就是你设置的方案计划
  • 在基础层面, playbooks 可以被用来管理用于部署到远程主机的配置文件。在更高的层面上,playbooks 可以依次对多层式架构上的服务器执行上线(包括滚动更新在内的操作)并可以将操作委托给其他主机(包括在此过程中发生的)与监视服务器,负载均衡服务器的交互操作在内


Ansible架构



Ansible模块


  • ansible-doc –l
  • Ansible已经开发近1000+的模块
  • Ansible的社区热度高
  • 参与开发者众多
  • 1000+模块覆盖大量的运维需求


ansible安装配置


  • yum install -y ansible
  • mkdir /home/student/dep-install
  • cd /home/student/dep-install
  • 创建清单文件,指明要管理的主机
  • /home/student/dep-install/inventory
  • [dev]
  • servera.lab.example.com
  • ansible dev -i inventory --list-hosts


使用ansible配置文件



examples:

  • [defaults]
  • inventory = ./inventory
  • 这个参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表。·
  • remote_user = someuser
  • ask_pass = false
  • [privilege_escalation]
  • become = true
  • become_method = sudo
  • become_user = root
  • become_ask_pass = false


Ad-hoc


  • ansible everyone -m ping
  • ansible -m user -a 'name=newbie uid=4000 state=present'
  • servera.lab.example.com


  • ansible mymanagedhosts -m command -a /usr/bin/hostname


  • ansible localhost -m copy -a 'content="Managed by
  • Ansible\n" dest=/etc/motd' -u devops


  • ansible localhost -m copy -a 'content="Managed by
  • Ansible\n" dest=/etc/motd' -u devops --become


创建playbooks


Ansible的playbook文件格式为YAML语法,所以在编写playbook之前对YAML语法有一定的了解,否则在运行playbook的时候会经常碰到语法错误的提示。



Demo: 运行一个web服务器



Demo: 多主机的任务



Demo:安装LAMP

  • 配置sudo
  • 创建ssh密钥
  • 编写playbook
  • 测试playbook
  • 运行playbook
  • 使用的模块:yum service lineinfile


Demo:安装LAMP


需要课件的小伙伴,①请“关注+转发”,②点击“私信”给小编,回复“云计算”即可获取。

举报
评论 0