ansible 初识

简介: Ansible是一个开源配置管理工具,可以使用它来自动化任务,部署应用程序实现IT基础架构。Ansible可以用来自动化日常任务,比如,服务器的初始化配置、安全基线配置、更新和打补丁系统,安装软件包等。

一 基本架构


Ansible是一个开源配置管理工具,可以使用它来自动化任务,部署应用程序实现IT基础架构。Ansible可以用来自动化日常任务,比如,服务器的初始化配置、安全基线配置、更新和打补丁系统,安装软件包等。Ansible架构相对比较简单,仅需通过SSH连接客户机执行任务即可:

20200513173205981.png

  • 控制节点(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等。

20200513173303558.png

二 、工作原理


与Chef、Puppet以及Saltstack(现在也支持Agentless方式salt-ssh)不同,Ansible是无客户端Agent的,所以无需在客户机上安装或配置任何程序,就可以运行Ansible任务。由于Ansible不会在客户机上安装任何软件或运行监听程序,因此消除了许多管理开销,我们可以在即可上手使用Ansible管理服务器,同时Ansible的更新也不会影响任何客户机。

20200322130934302.png

三 主要组成


20200322131108761.png

20200322131125745.png

20200322131151393.png

四 安装



20200322131324845.png20200322131459231.png

安装时需要注意:


如果是redhat 的yum源是安装不了的,必须使用epel 源才能安装的了ansible。有些yum源是免费的,可以用redhat yum源下载。

wget  http://mirrors.aliyun.com/repo/epel-6.repo
mv epel-6.repo  /etc/yum.repo.d/

在这块安装时浪费了很多功夫,特此注意。


安装成功后,查看version

[root@gp01 yum.repos.d]# ansible --version
ansible 2.5.0a1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.6/site-packages/ansible-2.5.0a1-py2.6.egg/ansible
  executable location = /usr/bin/ansible
  python version = 2.6.6 (r266:84292, Jun 20 2019, 14:14:55) [GCC 4.4.7 20120313 (Red Hat 4.4.7-23)]

五 常用模块


20200328174447468.png

六 系列命令以及文档查看


20200328193917263.png

七、特征


使用SSH进行通讯


默认情况下,Ansible使用SSH协议在管理机和客户机之间进行通信。可以使用SFTP与客户机进行安全的文件传输。


并行执行


Ansible与客户机并行通信,可以更快地运行自动化任务。默认情况下,forks值为5,可以按需,在配置文件中增大该值。

目录
相关文章
|
存储 Java
Java ArrayList 与 LinkedList 的灵活选择
Java ArrayList 类是一个可变大小的数组,位于 java.util 包中。
170 6
|
SQL 安全 关系型数据库
SQL自动化注ru-SQLmap入门操作(一)
SQL自动化注ru-SQLmap入门操作(一)
|
11月前
|
SQL 关系型数据库 MySQL
php入门
PHP入门是循序渐进的过程,涵盖基本概念、语法、数据类型、运算符、控制结构及常用函数。PHP是一种开源服务器端脚本语言,特别适用于Web开发。代码在服务器执行,返回HTML给浏览器。基础语法包括变量、注释和标记;掌握数据类型(整数、浮点数、字符串等)和运算符(算术、比较、逻辑)。实践编写简单程序,如if语句、循环和自定义函数。学习内置函数处理字符串、数组、文件和数据库操作。结合实践加深理解,建议多编写小程序巩固知识。
|
存储 安全 网络安全
云计算与网络安全:技术融合的双刃剑
本文深入探讨了云计算和网络安全之间的复杂关系。通过分析云服务的基本架构,我们揭示了它们在提供便利的同时,如何引入新的安全挑战。文章不仅讨论了这些挑战,还提供了应对策略,旨在帮助读者理解并加强他们的网络安全防护。
|
安全 Shell 网络安全
如何通过SSH连接云服务器
当你购买云服务器后,你可以通过SSH方式安全的连接到你的云服务器,因为只有你连上云服务器后才能进行服务器相关的配置操作。这里分别介绍了MAC用户和Windows用户如何通过SSH连接云服务器。
2375 1
如何通过SSH连接云服务器
|
Rust Java uml
外观模式 rust和java的实现
外观模式 rust和java的实现
131 0
|
Linux 开发工具
linux创建随机数并写文件处理
一、案例代码 /**************************************************************** * Name   : rondom_create_score.
1171 0
Floyd 循环检测算法(快慢指针法/龟兔指针法)
Floyd Cycle Detection Algorithm,即Floyd 循环检测算法,又称快慢指针法、龟兔指针法。该算法用于判断链表是否存在环,以及判断环的起点与长度的算法。
Floyd 循环检测算法(快慢指针法/龟兔指针法)
|
Java 索引
81. 说说HashMap 中的容量与扩容实现
81. 说说HashMap 中的容量与扩容实现
158 0
81. 说说HashMap 中的容量与扩容实现
|
存储 人工智能 数据处理
Python 数据处理:Pandas库的使用
最重要的一个功能是,它可以对不同索引的对象进行算术运算。在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集。是一种类似于一维数组的对象,它由一组数据(各种 NumPy 数据类型)以及一组与之相关的数据标签(即索引)组成。每个索引都有一些方法和属性,它们可用于设置逻辑并回答有关该索引所包含的数据的常见问题。看成是一个定长的有序字典,因为它是索引值到数据值的一个映射。跟对应的 NumPy 数组方法相比,它们都是基于没有缺失数据的假设而构建的。对于带有重复值的索引,数据选取的行为将会有些不同。
346 0
Python 数据处理:Pandas库的使用