推荐一个关于 Ansible 的入门介绍 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
dylanninin
V2EX    程序员

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

  •  
  •   dylanninin
    dylanninin 2023-06-22 08:35:02 +08:00 3815 次点击
    这是一个创建于 846 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    21 条回复    2023-06-25 14:24:57 +08:00
    lairdnote
        1
    lairdnote  
       2023-06-22 09:15:28 +08:00
    在用啊 。。都是 k8s aws
    wheeler
        2
    wheeler  
       2023-06-22 10:29:49 +08:00
    @lairdnote ansible 和 k8s 的重叠很小吧
    mmm159357456
        3
    mmm159357456  
       2023-06-22 11:03:41 +08:00
    都是英文的话我觉得还是看 ansible core 的 docs 就够了
    plko345
        4
    plko345  
       2023-06-22 13:43:20 +08:00
    @lairdnote 这是怎么对比的, 两个领域的东西吧
    slowgen
        5
    slowgen  
       2023-06-22 14:07:34 +08:00 via Android
    ansible 近两年也没啥大更新,我现在是直接提需求 chatgpt 写的,批量复制文件、执行命令、追加 hosts 、安装软件、起服务之类的命令准确率很高
    dylanninin
        6
    dylanninin  
    OP
       2023-06-22 14:58:02 +08:00
    @shuimugan 哈哈哈,666 ,这也可以。
    dylanninin
        7
    dylanninin  
    OP
       2023-06-22 15:03:35 +08:00
    @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
        8
    dylanninin  
    OP
       2023-06-22 15:05:24 +08:00
    @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
        9
    dylanninin  
    OP
       2023-06-22 15:08:00 +08:00
    @mmm159357456 嗯嗯,主要都是英文的,ansible 的主要特性都涵盖了,官方文档必须精读,才能少采坑
    leonhao
        10
    leonhao  
       2023-06-22 15:36:47 +08:00
    ansible 和 k8s 有毛关系,自建 k8s 还是用 ansible 部署的
    jorneyr
        11
    jorneyr  
       2023-06-22 17:36:27 +08:00
    Ansible 的信创环境支持怎么样,离线安装容易吗?
    现在国内信创发展速度太快。
    vmlinz
        12
    vmlinz  
       2023-06-22 18:23:46 +08:00   1
    ansible 还是不错的,不过现在 provision 的方式太多了,大部分 distro 都支持 cloud-init ,launch 的时候大部分配置需求都可以满足。更复杂的情况才会考虑 ansible ,chef 这类。
    hhjswf
        13
    hhjswf  
       2023-06-22 18:32:42 +08:00 via Android
    @dylanninin 这不就是 k8s 的 config map ?
    PendingOni
        14
    PendingOni  
       2023-06-22 18:42:03 +08:00
    hh 记得第一份工作做 CICD 的时候用的就是 Ansible 加上自建 Jenkins
    dylanninin
        15
    dylanninin  
    OP
       2023-06-22 19:02:12 +08:00 via iPhone
    @hhjswf 都是 yaml 工程师
    dylanninin
        16
    dylanninin  
    OP
       2023-06-22 19:07:06 +08:00 via iPhone
    @hhjswf 还真不是,简单说,ansible 基于 ssh ,用 yaml 编写可重复运行的自动化部署脚本。
    dylanninin
        17
    dylanninin  
    OP
       2023-06-22 21:25:11 +08:00 via iPhone
    @jorneyr 还没试过离线安装,不知难易程度怎么样
    lairdnote
        18
    lairdnote  
       2023-06-23 08:06:35 +08:00
    @dylanninin 格局打 你真用了你就知道差了。。
    bxb100
        19
    bxb100  
       2023-06-23 08:24:12 +08:00 via Android   1
    ansible jenkins terrform cicd 三小子
    dylanninin
        20
    dylanninin  
    OP
       2023-06-23 08:46:00 +08:00
    @lairdnote true
    invzhi
        21
    invzhi  
       2023-06-25 14:24:57 +08:00
    正好在学,打算用这个把我自建的服务器方案自动化一下嘿嘿
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2941 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 12:51 PVG 20:51 LAX 05:51 JFK 08:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86