searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

ansible个人使用总结

2023-09-27 08:05:22
43
0

1.ansible是什么?

       ansible可以理解为一个远程集中式控制软件,可以同时并发控制多台机器,执行各种操作

2.ansible可以用来干什么?

       正如所言,ansible可以同时控制很多机器,非常适合用来做机器数量大的云计算运维和部署,可以在一台机器上,集中运维管理多台机器

3.ansible的缺陷是什么?

       很多操作和逻辑都是面向基础,大众的,因此可能存在很多实际使用的限制,以及缺少定制化需求的实现,举个例子

       ansible无法随心所欲的打印你想打印的东西,以及颜色,这个非常头疼,而且ansible的报错有时候根本看不懂

4.如何更好的使用ansible?

       因为ansible的强大的分发能力,和薄弱的定制化和错误排查展示能力,其实最好的使用ansible的方式,就是只使用他的分发能力,使用自己独立的脚本,来做自己实际需要的事情

      举个例子,需要在100台机器上,做一个lscpu的操作,ansible本身当然可以实现,直接使用shell模块,执行lscpu,

      但此处我认为,更好的方案是,将lscpu单独写入xshell/python脚本,通过ansible将脚本分发到100台机器上,再执行脚本

     看起来,步骤反而更多了,更麻烦了,而实际上,从长久的可维护和可扩展性来看,这样更好,为什么,因为脚本里,你可以自由的判断lscpu的结果,也可以在ansible执行出错,无法看懂错误原因的时候,直接去目标机器执行该脚本,直接进行定位调试,这一点非常重要,当你的部署系统越来越大的时候,就会发现他的好处,就类似于面向对象的思想。

5.ansible的框架

   一个成熟的软件,尤其是应用领域较强的,肯定有自己的框架,ansible的框架,简单理解为:

   a.将host分组,不同的组放到不同的roles文件夹,以组别来执行操作

   b.将变量分组,不同作用域的变量放到不同的文件夹下,如group_var/host_var,你能很明显看懂他的意思

   c.将task分组,加上--tags标签,例如,你执行一句--tags update,肯定希望升级包含备份,升级等操作,那么tags就很好用

6.ansible代码怎么写

  对于一种工具来说,它的代码无非是默认的规则,并没有很强的逻辑和可扩展性,所以我认为,

只要能理解ansible代码是基于以下特性:

6.1 模块化的特性:

根据需求,可以直接问chatgpt,比如你说,我要复制一个文件到目标主机,以下是chatgpt给你的答复:

使用Ansible可以很方便地复制文件到目标主机。可以使用copy模块来完成这个任务。下面是一个简单的Ansible playbook示例,演示了如何复制一个文件到目标主机:

yamlCopy Code
- name: 复制文件到目标主机
  hosts: 目标主机   # 替换为您要操作的目标主机或主机组
  tasks:
    - name: 复制文件
      copy:
        src: /path/to/source/file   # 替换为源文件的路径
        dest: /path/to/destination/file   # 替换为目标文件的路

6.2 执行幂等性:

 

不用害怕重复执行,因为ansible会自己判断步骤是否执行,不会重复执行,当前这也要求我们如果单独写的脚本,也需要满足幂等性,因为重复执行的概率太大了,需要消除这个风险

 
0条评论
0 / 1000
c****n
2文章数
0粉丝数
c****n
2 文章 | 0 粉丝
c****n
2文章数
0粉丝数
c****n
2 文章 | 0 粉丝
原创

ansible个人使用总结

2023-09-27 08:05:22
43
0

1.ansible是什么?

       ansible可以理解为一个远程集中式控制软件,可以同时并发控制多台机器,执行各种操作

2.ansible可以用来干什么?

       正如所言,ansible可以同时控制很多机器,非常适合用来做机器数量大的云计算运维和部署,可以在一台机器上,集中运维管理多台机器

3.ansible的缺陷是什么?

       很多操作和逻辑都是面向基础,大众的,因此可能存在很多实际使用的限制,以及缺少定制化需求的实现,举个例子

       ansible无法随心所欲的打印你想打印的东西,以及颜色,这个非常头疼,而且ansible的报错有时候根本看不懂

4.如何更好的使用ansible?

       因为ansible的强大的分发能力,和薄弱的定制化和错误排查展示能力,其实最好的使用ansible的方式,就是只使用他的分发能力,使用自己独立的脚本,来做自己实际需要的事情

      举个例子,需要在100台机器上,做一个lscpu的操作,ansible本身当然可以实现,直接使用shell模块,执行lscpu,

      但此处我认为,更好的方案是,将lscpu单独写入xshell/python脚本,通过ansible将脚本分发到100台机器上,再执行脚本

     看起来,步骤反而更多了,更麻烦了,而实际上,从长久的可维护和可扩展性来看,这样更好,为什么,因为脚本里,你可以自由的判断lscpu的结果,也可以在ansible执行出错,无法看懂错误原因的时候,直接去目标机器执行该脚本,直接进行定位调试,这一点非常重要,当你的部署系统越来越大的时候,就会发现他的好处,就类似于面向对象的思想。

5.ansible的框架

   一个成熟的软件,尤其是应用领域较强的,肯定有自己的框架,ansible的框架,简单理解为:

   a.将host分组,不同的组放到不同的roles文件夹,以组别来执行操作

   b.将变量分组,不同作用域的变量放到不同的文件夹下,如group_var/host_var,你能很明显看懂他的意思

   c.将task分组,加上--tags标签,例如,你执行一句--tags update,肯定希望升级包含备份,升级等操作,那么tags就很好用

6.ansible代码怎么写

  对于一种工具来说,它的代码无非是默认的规则,并没有很强的逻辑和可扩展性,所以我认为,

只要能理解ansible代码是基于以下特性:

6.1 模块化的特性:

根据需求,可以直接问chatgpt,比如你说,我要复制一个文件到目标主机,以下是chatgpt给你的答复:

使用Ansible可以很方便地复制文件到目标主机。可以使用copy模块来完成这个任务。下面是一个简单的Ansible playbook示例,演示了如何复制一个文件到目标主机:

yamlCopy Code
- name: 复制文件到目标主机
  hosts: 目标主机   # 替换为您要操作的目标主机或主机组
  tasks:
    - name: 复制文件
      copy:
        src: /path/to/source/file   # 替换为源文件的路径
        dest: /path/to/destination/file   # 替换为目标文件的路

6.2 执行幂等性:

 

不用害怕重复执行,因为ansible会自己判断步骤是否执行,不会重复执行,当前这也要求我们如果单独写的脚本,也需要满足幂等性,因为重复执行的概率太大了,需要消除这个风险

 
文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0