Ansible自动化工具快速入门实践


Ansible自动化工具快速入门实践

文章插图
 
ansible入门简单实践1、Ansible是什么Ansible是一种IT自动化工具 。它可以配置系统,部署软件以及协调更高级的IT任务,例如处理配置管理,应用程序部署,持续部署,滚动更新 。
Ansible适用于管理企业IT基础设施,从具有少数主机的小规模到数千个实例的企业环境 。
Ansible也是一种简单的自动化语言,可以完美地描述IT应用程序基础结构
2、Ansible基本概念术语
  • 控制节点(Control node):指安装了Ansible的主机,也叫Ansible服务器端,管理机 。Ansible控制节点主要用于发布运行任务,执行控制命令 。Ansible的程序都安装在控制节点上,控制节点需要安装Python和Ansible所需的各种依赖库 。注意:目前Ansible还不能安装在windows下 。
  • 受控节点(Managed nodes):也叫客户机,就是想用Ansible执行任务的客户服务器 。
  • 清单(Inventory):受控节点的列表,就是所有要管理的主机列表 。host文件:清单列表通常保存在一个名为host文件中 。在host文件中,可以使用IP地址或者主机名来表示具体的管理主机和认证信息,并可以根据主机的用户进行分组 。缺省文件:/etc/ansible/hosts,可以通过-i指定自定义的host文件 。
  • 模块(Modules):模块是Ansible执行特定任务的代码块 。比如:添加用户,上传文件和对客户机执行ping操作等 。Ansible现在默认自带450多个模块,,Ansible Galaxy公共存储库则包含大约1600个模块 。
  • 任务(Task):是Ansible客户机上执行的操作 。可以使用ad-hoc单行命令执行一个任务 。
  • 剧本(Playbook):是利用YAML标记语言编写的可重复执行的任务的列表,playbook实现任务的更便捷的读写和贡献 。比如,在Github上有大量的Ansible playbooks共享,你能找到大量的宝藏 。
  • 角色(roles):角色是Ansible 1.2版本引入的新特性,用于层次性、结构化地组织playbook 。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等
3、ansible命令执行过程1). 加载自己的配置文件 默认/etc/ansible/ansible.cfg
2). 加载自己对应的模块文件,如command
3). 通过ansible将模块或命令生成对应的临时py文件,并将该文件传输至远程服 务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-数字/XXX.PY文件 4). 给文件+x执行
5). 执行并返回结果
6). 删除临时py文件,退出
• 执行状态:
绿色:执行成功并且不需要做改变的操作
黄色:执行成功并且对目标主机做变更
红色:执行失败
4、Ansible常用模块•执行shell命令(command和shell)
•文件传输(copy和file)
•管理软件包(yum)
•用户和组(user)
•从源代码管理系统部署(git)
•管理服务(service)
•收集目标主机信息(setup)
 
ansible入门简单实践
 1、基础环境如下master 192.168.198.200node1 192.168.198.201node2 192.168.198.202node3 192.168.198.203
Ansible自动化工具快速入门实践

文章插图
 
 
(图片可放大查看)
2、主控节点上安装ansibleyum install ansible
Ansible自动化工具快速入门实践

文章插图
 
(图片可放大查看)
Ansible自动化工具快速入门实践

文章插图
 
(图片可放大查看)
3、配置SSH密钥身份验证(免密登录)设置用于节点鉴权的SSH密钥
ssh-keygen -b 2048 -t rsassh-copy-id root@192.168.198.201ssh-copy-id root@192.168.198.202ssh-copy-id root@192.168.198.203
Ansible自动化工具快速入门实践

文章插图
 
(图片可放大查看)
Ansible自动化工具快速入门实践

文章插图
 
(图片可放大查看)
3、创建Ansible主机清单
vi /etc/ansible/hosts例如加入如下行主机组vm_servers[vm_servers]192.168.198.201192.168.198.202192.168.198.203
Ansible自动化工具快速入门实践

文章插图
 
(图片可放大查看)
ansible all --list-hostsansible vm_servers  --list-hosts
Ansible自动化工具快速入门实践

文章插图
 
(图片可放大查看)


推荐阅读