玩转ansible之软件安装篇

这篇具有很好参考价值的文章主要介绍了玩转ansible之软件安装篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微信公众号:更多运维知识,欢迎关注公众号- 运维之美

前言

公司老板让你刚入职的你给10台linux机器都安装上docker软件,作为刚入门的小白应该是ssh登录每台机器单独安装,大佬则是直接使用ansible一次搞定,本篇文章整理了使用ansible剧本来管理集群规模的软件的安装和卸载,能够达到事半功倍的效果。

直接上干货,使用下面的剧本即可快速搞定任务,让老板刮目相看

- name: 安装并配置Docker
  hosts: k8s_node # 指定目标CentOS主机组
  become: yes  # 使用sudo或root权限
  tasks:
    - name: 检查Docker是否已安装
      command: docker --version
      ignore_errors: yes #命令执行失败忽略,继续后续步骤
      register: docker_check #注册变量docker_check根据是否安装执行不同的后续操作

    - name: 安装Docker
      yum:
        name: docker
        state: present
      when: docker_check.rc != 0  # 如果Docker未安装

    - name: 启用Docker服务并设置开机自启动
      systemd:
        name: docker
        enabled: yes
        state: started
      when: docker_check.rc != 0  # 如果Docker未安装

执行效果
玩转ansible之软件安装篇,ansible

步骤分拆

  1. 使用docker --version判断是否已经安装docker

  2. 如果不存在则进行安装

  3. 启动docker服务并设置开机自启动

玩转ansible之软件安装篇,ansible

01.软件安装

Linux有很多不同的发行版本,不同版本软件的安装方式也是不一样的,下文的k8s_node主机组需要提前配置好

配置/etc/ansible/hosts

[k8s_node]
10.200.18.101 ansible_port=22
  • apt 模块

适用于 Debian/Ubuntu 等基于apt管理的系统

 - name: use apt install docker
  hosts: k8s_node
  become: yes  # 使用sudo或root权限
  tasks:
    - name: install docker
      apt:
        name: docekr
        state: present  # 确保docker安装
  • yum 模块

适用于 CentOS/RHEL 等基于基于yum管理的系统

 - name: 安装docker使用yum模块
  hosts: k8s_node
  become: yes  # 使用 sudo 或 root 权限
  tasks:
    - name: install docker package
      yum:
        name: docker
        state: present  # 确保docker安装
  • dnf 模块

dnf是新一代的rpm包管理工具,适用于新版 CentOS/RHEL 系统

 - name: install docker package
  hosts: k8s_node
  become: yes  # 使用 sudo 或 root 权限
  tasks:
    - name: 安装docker
      dnf:
        name: docker
        state: present  # 确保docker安装
  • 安装指定软件版本
 - name: 安装特定版本的软件
  apt:
    name: software-name=1.2.3
    state: present
  • 同时安装多个软件包
 - name: 安装多个软件包
  apt:
    name:
      - package1
      - package2
    state: present
  • 离线包安装
- name: 安装离线包
  hosts: 
    - debian_hosts  # 包含Debian系统的主机组
    - redhat_hosts  # 包含Red Hat系统的主机组
  become: yes  # 使用 sudo 或 root 权限

  tasks:
    - name: 复制.deb包到Debian主机
      copy:
        src: /path/to/your-debian-package.deb  # Debian系统上的.deb包路径
        dest: /tmp/your-debian-package.deb  # 指定目标主机上的路径
      when: "'debian_hosts' in inventory_hostname"

    - name: 复制.rpm包到Red Hat主机
      copy:
        src: /path/to/your-redhat-package.rpm  # Red Hat系统上的.rpm包路径
        dest: /tmp/your-redhat-package.rpm  # 指定目标主机上的路径
      when: "'redhat_hosts' in inventory_hostname"

    - name: 安装.deb包
      command: dpkg -i /tmp/your-debian-package.deb
      when: "'debian_hosts' in inventory_hostname"

    - name: 安装.rpm包
      command: rpm -ivh /tmp/your-redhat-package.rpm
      when: "'redhat_hosts' in inventory_hostname"

对于使用deb和rpm不同包格式的系统,我们使用when条件限定

02.软件卸载

  • apt 模块卸载
 - name: 卸载docker使用apt模块
  hosts: k8s_node
  become: yes  # 使用sudo或root权限
  tasks:
    - name: 停止docker服务
      service:
        name: docker
        state: stopped

    - name: 卸载docker
      apt:
        name: docker
        state: absent  # 确保 docker卸载
  • 卸载多个包
 - name: 卸载多个软件包
  apt:
    name:
      - package1
      - package2
    state: absent
  • yum 模块卸载
- name: 卸载docker使用 yum 模块
  hosts: k8s_node
  become: yes  # 使用 sudo 或 root 权限
  tasks:
    - name: 停止docker服务
      service:   #高版本的centos修改为systemd模块即可
        name: docker
        state: stopped

    - name: 卸载docker
      yum:
        name: docker
        state: absent  # 确保docker卸载

卸载执行过程
玩转ansible之软件安装篇,ansible

  • dnf 模块卸载
- name: 卸载dnf模块卸载docker
  hosts: k8s_node
  become: yes  # 使用sudo或root权限
  tasks:
    - name: 停止docker服务
      service:
        name: docker
        state: stopped

    - name: 卸载docker
      dnf:
        name: docker
        state: absent  # 确保docker卸载

以上示例演示了在不同的 Linux 发行版中使用不同的模块和包管理工具来安装和卸载软件。实际使用中要根据系统和软件包管理器选择适当的 playbook 部分,并可以通过when根据平台和架构限定条件

03.服务启动

直接上使用案例

- name: 启动服务(init.d)
  service:
    name: docker
    state: started

设置开机自启动

- name: 设置开机自启动(init.d)
  file:
    src: /etc/init.d/my-service
    dest: /etc/rc.d/rc3.d/S90my-service
    state: link

使用systemd模块启动

- name: 启动服务(systemd)
  systemd:
    name: docker
    state: started

设置开机自启动

- name: 设置开机自启动(systemd)
  systemd:
    name: docker
    enabled: yes

软件安装之后,还要进行后续的服务启动,开机自启动等配置。这里需要注意的是,centos6之前服务启动使用的是service模块,centos7之后则使用systemd模块,使用过程中要灵活根据系统进行修改。文章来源地址https://www.toymoban.com/news/detail-703054.html

到了这里,关于玩转ansible之软件安装篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ansible - 安装 -【kodcloud教程】

    目录 目录结构、主机清单 【1】安装基础环境 【2】webserver - 安装nginx 【3】安装php环境 【4】lb-server 【5】redis安装 【6】 kodcloud 【7】wordpress-proxy    ansible 10.0.0.10 lb-server 10.0.0.11 web01 10.0.0.15 web02 10.0.0.16 redis 10.0.0.20 目录结构、主机清单 【1】安装基础环境

    2024年02月11日
    浏览(37)
  • 三、05-ansible安装

    anseble 是用python 开发的 集合了多种运维自动化工具(pupet、cfengine、chef、func、fabric) 实现了批量系统配置、批量程序部署、批量运行命令等功能 无客户端 playbook 剧本文件 主要是 是yaml 的语言 (意思是 我不仅仅是一个标记语言) 1、部署简单,只需要在主控端部署Ansible环境

    2024年01月23日
    浏览(71)
  • 安装和配置 Ansible

        按照下方所述,在控制节点 control.area12.example.com 上安装和配置 Ansible:         安装所需的软件包         创建名为 /home/curtis/ansible/inventory 的静态清单文件,以满足以下要求:             node1 是 dev 主机组的成员             node2 是 test 主机组的成员            

    2024年02月12日
    浏览(31)
  • Ansible的安装和配置

    安装和配置 Ansible 安装所需的软件包 创建名为 /home/greg/ansible/inventory 的静态清单文件,以满足以下要求: 172.25.250.9 是 dev 主机组的成员 172.25.250.10 是 test 主机组的成员 172.25.250.11 和 172.25.250.12 是 prod 主机组的成员 172.25.250.13 是 balancers 主机组的成员 prod 组是 webservers 主机组的

    2024年02月13日
    浏览(37)
  • Ansible离线安装

    Ansible rpm离线安装 离线安装包下载

    2024年04月22日
    浏览(85)
  • ubuntu ansible 安装使用

    /etc/ansible/hosts 是主机清单配置文件,由 ansible.cfg文件中的 inventory 变量配置,默认值为/etc/ansible/hosts 在使用ansible命令前,需要对hosts文件进行相关主机清单配置 1.可以不对主机进行分组,如果不指定分组,需要配置在所有的分组前 2.可以对主机进行分组,中括号里包含的名字

    2024年02月13日
    浏览(26)
  • Ansible安装部署与应用

    Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个

    2024年02月14日
    浏览(31)
  • Ansible的安装和部署

    目录 1.Ansible的安装 2.构建Ansible清单  直接书写受管主机名或ip 设定受管主机的组[组名称] 主机规格的范围化操作 指定其他清单文件 ansible命令指定清单的正则表达式 3.Ansible配置文件参数详解 配置文件的分类与优先级 常用配置参数 4.构建用户级Ansible操作环境 环境配置 主控

    2024年02月08日
    浏览(38)
  • 01_什么是ansible、基本架构、ansible工作机制、Ansible安装、配置主机清单、设置SSH无密码登录等

    1.什么是ansible 1.1.基本介绍 1.2.基本架构 1.3.基本特征 1.4.优点 1.5.ansible工作机制 2.Ansible安装 2.1.机器准备 2.2.安装ansible 2.2.1.安装epel源 2.2.2.安装ansible 2.2.3.查看ansible版本 2.2.4.树状结构展示文件夹 2.2.4.1.其中ansible.cfg的内容如下 2.2.4.2.host的默认内容是 2.3.配置主机清单 2.4.设置

    2024年02月14日
    浏览(46)
  • Ansible 临时命令搭建安装仓库

    创建一个名为/ansible/yum.sh 的 shell 脚本,该脚本将使用 Ansible 临时命令在各个受管节点上安装 yum 存储库. 存储库1:     存储库的名称为 EX294_BASE     描述为 EX294 base software     基础 URL 为 http://content/rhel8.0/x86_64/dvd/BaseOS     GPG 签名检查为启用状态     GPG 密钥 URL 为 http://c

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包