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

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

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


640.png


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.200
node1 192.168.198.201
node2 192.168.198.202
node3 192.168.198.203


640.jpg


2、主控节点上安装ansible


yum install ansible

640.jpg640.jpg

3、配置SSH密钥身份验证(免密登录)


设置用于节点鉴权的SSH密钥


ssh-keygen -b 2048 -t rsa
ssh-copy-id root@192.168.198.201
ssh-copy-id root@192.168.198.202
ssh-copy-id root@192.168.198.203

640.jpg

640.jpg

3、创建Ansible主机清单


vi /etc/ansible/hosts
例如加入如下行
主机组vm_servers
[vm_servers]
192.168.198.201
192.168.198.202
192.168.198.203


640.jpg

ansible all --list-hosts
ansible vm_servers  --list-hosts

640.jpg


4、ansible命令格式:


ansible <host-pattern> [-m module_name] [-a args]


5、简单介绍ansible的几个模块使用


1)、检查主机的连通性


ansible vm_servers -m ping
ansible all -m ping

640.jpg

2)、command模块

command:在远程主机执行命令;不支持|管道命令


ansible vm_servers -m command -a 'df -PTh'
ansible vm_servers -m command -a 'uptime'
ansible vm_servers -m command -a 'uname -r'

640.jpg

640.jpg

3)、shell模块


shell模块在远程主机上调用shell解释器运行命令,支持shell的各种功能,例如管道


ansible vm_servers -m shell -a 'lscpu | grep Intel'
ansible vm_servers -m shell -a 'cat /etc/passwd | grep root'


640.jpg

4)、copy模块


ansible vm_servers -m copy -a "src=/opt/init_centos7_v2.sh dest=/opt/"


640.jpg

640.jpg

640.jpg


5)、yum模块


yum安装软件


ansible vm_servers -m yum -a 'name=htop state=present'

640.jpg

640.jpg

yum卸载软件


ansible vm_servers -m yum -a 'name=iftop state=absent'


640.jpg


6)、service模块


ansible vm_servers -m service  -a 'name=rsyslog state=restarted'


640.jpg

640.jpg


上面只列举了几个基本模块的使用 ,一些复杂任务需要使用 Ansible playbooks

相关文章
|
2天前
|
消息中间件 运维 Kubernetes
构建高效自动化运维体系:Ansible与Kubernetes的融合实践
【5月更文挑战第9天】随着云计算和微服务架构的普及,自动化运维成为确保系统可靠性和效率的关键。本文将深入探讨如何通过Ansible和Kubernetes的集成,构建一个强大的自动化运维体系。我们将分析Ansible的配置管理功能以及Kubernetes容器编排的优势,并展示如何将二者结合,以实现持续部署、快速扩展和高效管理现代云原生应用。文章还将涵盖实际案例,帮助读者理解在真实环境下如何利用这些工具优化运维流程。
一键自动化博客发布工具,用过的人都说好(infoq篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到infoq上。
一键自动化博客发布工具,用过的人都说好(infoq篇)
一键自动化博客发布工具,用过的人都说好(cnblogs篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到cnblogs上。
|
3天前
|
开发者
一键自动化博客发布工具,用过的人都说好(阿里云篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到阿里云上。
一键自动化博客发布工具,用过的人都说好(阿里云篇)
|
4天前
|
运维 Kubernetes 监控
构建高效自动化运维体系:基于Ansible的策略与实践
【5月更文挑战第8天】 在当今IT基础设施管理领域,自动化不再是一个选择,而是必要的步骤。随着复杂性的增加和变更的频繁性,自动化工具如Ansible提供了一种高效、可靠的解决方案来简化配置管理和多节点部署。本文将探讨如何利用Ansible构建一个高效的自动化运维体系,涵盖其核心原理、策略设计以及在实际环境中的应用。我们将分析Ansible与其他自动化工具的不同之处,并提供一些最佳实践,以帮助运维专家提升他们的工作效率和系统稳定性。
一键自动化博客发布工具,用过的人都说好(oschina篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到oschina上。
一键自动化博客发布工具,用过的人都说好(oschina篇)
|
5天前
|
运维 关系型数据库 MySQL
Ansible自动化运维工具主机清单配置
Ansible自动化运维工具主机清单配置
一键自动化博客发布工具,用过的人都说好(segmentfault篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到segmentfault上。
|
5天前
|
测试技术 API
探索软件测试中的自动化工具与挑战
本文探讨了软件测试领域中自动化工具的应用与挑战。通过分析目前主流的自动化测试工具,探讨了其在提高测试效率、减少人工成本、增强测试覆盖率等方面的优势。然而,自动化测试也面临着诸如脆弱性、维护成本高等挑战。最后,提出了一些应对挑战的建议,以期为软件测试领域的自动化工作提供一些启示。
13 1
|
29天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。

热门文章

最新文章