• Ansible原理和安装


    Ansible

    Ansible简介

    • Ansible是一个IT自动化工具。它能配置系统、部署软件、编排更复杂的IT任务,如连续部署或零停机滚动更新
    • Ansible使用python编写,市面上已经有很多可供选择的配置管理解决方案(例如Saltstack,Puppet,Chef等),但他们各有优劣,而Ansible的特点在于他的简洁。让Ansible在主流的配置管理系统种与众不同的一点是:它并不需要你在被管节点上安装代理软件

    Ansible的特性

    1. Agentless(无代理模式):不需要在被管节点上安装代理软件,只需要有sshd服务即可
    2. Serverless(无服务模式):在服务端不需要启动任何的服务,只需要执行命令即可
    3. Modules in any language:基于模块工作,可以使用任意语言去开发Ansible模块
    4. YAML:使用yaml语言定制playbook
    5. SSH by default:默认使用ssh控制各个节点
    6. Strong multi-tier solution:可实现多级控制

    Ansible的基本组件

    • 核心:ansible
    • 核心模块(Core Modules):这些都是ansible自带的模块
    • 扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
    • 插件:完成模块功能的补充
    • 剧本(playbook):把需要完成的任务定义在剧本中
    • 连接插件:ansible基于连接插件连接到各个主机上,虽然他是默认使用ssh,但是它还支持其他的方法
    • 主机清单:ansible在管理多台主机时,可以只针对其中一部分来操作

    Ansible安装(rhel8/rhel9)

    1. rhel8安装

    Ansible的安装方式有多种,常用的就是使用yum安装,使用yum安装需要配置epel源

    1.1 配置epel源

    copy
      # 如果不配置epel源直接安装的话是会报错的,因为没有这个软件包
      [root@ansible ~]# yum install ansible -y
      Loaded plugins: fastestmirror
      Loading mirror speeds from cached hostfile
      No package ansible available.
      Error: Nothing to do
      # 配置epel
      [root@ansible ~]# yum install epel-release -y
      ……中间输出省略
      Complete!

      1.2 安装ansible

      copy
        [root@ansible ~]# yum install ansible -y

        1.3 验证

        copy
          [root@ansible ~]# ansible --version
          ansible 2.9.27
          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.7/site-packages/ansible
          executable location = /usr/bin/ansible
          python version = 2.7.5 (default, Jun 28 2022, 15:30:04) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]

          看到有输出就是安装完成了

          2.rhel9安装

          rhel9的安装方式不一样了,rhel9可以不配置epel源,挂载ISO之后编写yum仓库文件就可以完成安装,但是这种方式是最小化安装
          rhel9使用yum安装之后他是只会给你安装一个ansible-core也就是核心,他只有一些内置的模块,功能非常少,所以我们需要采取另外的安装方式来将模块全部安装上,当然,你可以安装ansible-core之后再去安装你想要的模块,也是没有任何问题的。我们这里就讲一步到位的安装方式
          至于模块是什么,我们后面用到的时候再说

          2.1 安装pip

          因为ansible是用python写的,所以是可以通过pip去安装ansible的,并且这种方式是会安装全部模块的

          copy
            [root@rhel9 ~]# yum install python3-pip -y

            2.2 使用pip命令安装ansible

            copy
              # 建议使用国内的pip源,速度会快得多
              [root@rhel9 ~]# pip install ansible -i https://pypi.tuna.tsinghua.edu.cn/simple

              等待他安装完成

              3.3 验证安装

              copy
                [root@rhel9 ~]# ansible --version
                ansible [core 2.15.9]
                config file = None
                configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
                ansible python module location = /usr/local/lib/python3.9/site-packages/ansible
                ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
                executable location = /usr/local/bin/ansible
                python version = 3.9.10 (main, Feb 9 2022, 00:00:00) [GCC 11.2.1 20220127 (Red Hat 11.2.1-9)] (/usr/bin/python3)
                jinja version = 3.1.3
                libyaml = True

                安装的模块是全的,但是有个缺点就是没有配置文件

                3.4 生成配置文件(如果是yum安装的就没有这一步)

                copy
                  # 生成默认配置文件
                  [root@rhel9 ~]# mkdir /etc/ansible
                  [root@rhel9 ~]# ansible-config init > /etc/ansible/ansible.cfg

                  至于配置文件里面是什么,需要怎么配置,我们下次再聊

                  本文作者:FuShudi

                  本文链接:https://www.cnblogs.com/fsdstudy/p/18029655

                  版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

                • 相关阅读:
                  rviz中引入SW的模型
                  基于SSM的四六级报名与成绩查询系统的设计与实现
                  ORA-07445: exception encountered: core dump [kdxlin()+4088]---惜分飞
                  UE4 蓝图宏库以及字母前缀说明
                  Cy3-PEG-maleimide,Cy3-聚乙二醇-马来酰亚胺,MAL-PEG-Cy3
                  UI自动化 --- 微软UI Automation
                  浅析 Android 系统稳定性中应用程序 ANR 无响应的原因
                  MBR10200CT-ASEMI智能AI应用MBR10200CT
                  Hadoop集群启动但是没有datanode/namenode的情况
                  时间复杂度的计算技巧-算法模型中的时间复杂度如何计算,有哪些技巧呢
                • 原文地址:https://www.cnblogs.com/fsdstudy/p/18029655