推荐一个关于 Ansible 的入门介绍

325 天前
 dylanninin

以前做的一个关于 Ansible 的入门介绍,可以看看

GitHub 链接: https://github.com/dylanninin/presentation/blob/master/2020-09-11_Ansible-Intro.pdf

Slideshare 链接: https://www.slideshare.net/DylannininGogh/ansible-introduction-238633094

2677 次点击
所在节点    程序员
21 条回复
lairdnote
325 天前
現在誰還會用這個啊 。。都是 k8s aws
wheeler
325 天前
@lairdnote ansible 和 k8s 的重叠很小吧
mmm159357456
325 天前
都是英文的话我觉得还是看 ansible core 的 docs 就够了
plko345
325 天前
@lairdnote 这是怎么对比的, 两个领域的东西吧
shuimugan
325 天前
ansible 近两年也没啥大更新,我现在是直接提需求 chatgpt 写的,批量复制文件、执行命令、追加 hosts 、安装软件、起服务之类的命令准确率很高
dylanninin
325 天前
@shuimugan 哈哈哈,666 ,这也可以。
dylanninin
325 天前
@lairdnote 不是同一类东西啊,没法比。

可以问问 ChatGPT

Ansible 是一个广泛使用的配置管理和自动化工具,它可以帮助用户自动配置服务器、应用程序和其他基础设施组件。除 Ansbile 以外,市面上还存在许多类似的工具,这些工具在功能和工作方式上可能略有不同。以下是几个比较知名的 Ansible 替代品:
- Puppet:Puppet 是一个流行的配置管理工具,它基于 Ruby 语言开发,使用声明式的 Puppet DSL (领域特定语言)来描述系统配置。Puppet 支持可扩展的模块化体系结构,可以与许多其他 DevOps 工具集成,如 Git 、Jenkins 等。
- Chef:同样基于 Ruby 的 Chef 是另一个流行的配置管理工具。Chef 是基于程序化的(命令式)方法实现配置管理,允许用户通过编写 "Cookbook" 和 "Recipes" 的方式管理系统配置。Chef 的缺点是学习曲线较陡,但它强大的动态性吸引了许多高级用户。
- SaltStack:SaltStack 是一个用 Python 编写的模块化配置管理和自动化工具。与 Ansible 类似,SaltStack 也是基于代理( agent )或无代理( agent-less )方式运行的。SaltStack 可以通过可扩展的插件系统自定义其功能,并支持 YAML 和 Jinja2 作为模板引擎。
- Terraform:Terraform 是一个专注于基础设施即代码 (Infrastructure as Code) 的工具,由 HashiCorp 开发。它使用声明式的 HCL (HashiCorp Configuration Language) 管理各种云服务商(如 AWS 、Azure 、Google Cloud Platform 等)和其他基础设施资源。Terraform 在云服务自动化方面的功能非常强大。
- Fabric:Fabric 是一个轻量级的 Python 库,用于配置管理和应用程序部署。Fabric 是一个命令式工具,主要用于在远程服务器上执行命令和文件传输。尽管 Fabric 功能相对较少,但它对于简单的部署和自动化任务来说是一个很好的选择。
- CFEngine:CFEngine 是一个轻量级的配置管理工具,适用于大型网络环境。CFEngine 使用 C 语言编写并使用自己的声明式领域特定语言( DSL )作为配置文件。CFEngine 相对轻量级,性能出色并且具有极强的可扩展性。

这些工具在功能和使用方法上有些许差异,您可以根据您的项目需求和喜好来选择使用哪种工具。
dylanninin
325 天前
@lairdnote 问 ChatGPT

ansible 和 k8s 有什么差异

Ansible 和 Kubernetes (通常简称为 k8s )都是用于 IT 基础设施管理和自动化的工具,但它们之间存在很大的区别,关注的领域和使用场景也不同。

1. 目标领域和范围:
- Ansible 主要关注**配置管理**和**自动化**领域。它可以用于自动部署、配置服务器、应用程序和其他 IT 基础设施组件。Ansible 不局限于特定环境,可以在物理服务器、虚拟机或者云环境中使用。
- Kubernetes 是一个**容器编排**系统,它用于自动化容器化应用程序的部署、扩展和管理。Kubernetes 专注于容器技术(如 Docker )的管理,主要适用于大规模、分布式和微服务架构的应用程序。

2. 构建和部署方法:
- Ansible 使用一种基于**代理**或**无代理**方式的 "推"( push )模式,将配置从控制节点( Control Node )推送到需要配置的目标节点( Target Node )。
- Kubernetes 使用一个**主从**架构,其中由主节点( Master Node )控制工作节点( Worker Node )。工作节点运行容器化的应用程序,并根据主节点的指令自动进行部署和扩展。

3. 配置语言和模板引擎:
- Ansible 使用简单的 YAML 格式来编写 Playbook (执行脚本),支持使用 Jinja2 作为模板引擎。
- Kubernetes 使用 YAML 格式编写资源清单来表示和管理容器化应用程序及其相关的组件(如服务、存储等)。

4. 平台兼容性:
- Ansible 是跨平台的,可以在几乎所有类型的操作系统(如 Linux 、Windows 、macOS )和计算环境中使用。
- Kubernetes 主要在 Linux 环境中运行,尽管可以在 Windows 上运行 Kubernetes ,但支持和功能可能有限。

总之,Ansible 和 Kubernetes 都是强大的 IT 基础设施管理工具,但它们主要关注的领域和应用场景有很大区别。在实践中,这两者之间并不是替代关系,很多时候可以互补使用。例如,可以使用 Ansible 来部署和配置 Kubernetes 集群,然后使用 Kubernetes 来管理部署在集群中的容器化应用程序。
dylanninin
325 天前
@mmm159357456 嗯嗯,主要都是英文的,ansible 的主要特性都涵盖了,官方文档必须精读,才能少采坑
leonhao
325 天前
ansible 和 k8s 有毛关系,自建 k8s 还是用 ansible 部署的
jorneyr
325 天前
Ansible 的信创环境支持怎么样,离线安装容易吗?
现在国内信创发展速度太快。
vmlinz
325 天前
ansible 还是不错的,不过现在 provision 的方式太多了,大部分 distro 都支持 cloud-init ,launch 的时候大部分配置需求都可以满足。更复杂的情况才会考虑 ansible ,chef 这类。
hhjswf
325 天前
@dylanninin 这不就是 k8s 的 config map ?
PendingOni
325 天前
hh 记得第一份工作做 CICD 的时候用的就是 Ansible 加上自建 Jenkins
dylanninin
325 天前
@hhjswf 😂 都是 yaml 工程师
dylanninin
325 天前
@hhjswf 还真不是,简单说,ansible 基于 ssh ,用 yaml 编写可重复运行的自动化部署脚本。
dylanninin
325 天前
@jorneyr 还没试过离线安装,不知难易程度怎么样
lairdnote
324 天前
@dylanninin 格局打開 當你真用過了你就知道差別了。。
bxb100
324 天前
ansible jenkins terrform cicd 三小子
dylanninin
324 天前
@lairdnote true

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/950794

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX