当前位置: 首页 > news >正文

ansible role配apt源

1. 准备自定义的 APT 源文件
首先,在你的 Ansible 控制机上,创建一个 files 目录来存放源文件。
创建 files 目录 (如果你的 Playbook 目录下没有的话):

mkdir -p files

2.创建并编辑 sources.list 文件:我们以配置阿里云的 Ubuntu 22.04 (focal) 源为例。你可以根据你的操作系统版本(如 Ubuntu 18.04 bionic,Debian 11 bullseye 等)去对应的镜像站获取配置。

vim files/sources.list

将以下阿里云的 Ubuntu 22.04 源配置粘贴到文件中:

deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

3.编写 Ansible Playbook
现在,创建一个 Playbook 文件,例如 configure_apt.yml。

vim configure_apt.yml

将以下内容粘贴到文件中

- name: 配置 APT 源hosts: allbecome: yestasks:# 任务1: 备份文件- name: 1. 备份当前的 sources.list 文件ansible.builtin.copy:src: /etc/apt/sources.listdest: /etc/apt/sources.list.bak_{{ ansible_date_time.date }}remote_src: yesforce: no# 任务2: 部署新文件- name: 2. 部署新的 sources.list 文件ansible.builtin.copy:src: files/sources.listdest: /etc/apt/sources.listowner: rootgroup: rootmode: '0644'notify:- 更新 apt 缓存# handlers 部分 (请确保这一行是顶格的,没有任何前置空格)handlers:- name: 更新 apt 缓存ansible.builtin.apt:update_cache: yescache_valid_time: 3600

Playbook 详解
hosts: group1: 指定 Playbook 的目标主机组。
任务 1: 备份当前的 sources.list 文件:
使用 command 模块执行 mv 命令,将原有的 sources.list 重命名为 .bak 备份文件。
args: creates: ... 确保了只有当备份文件不存在时,才会执行备份,保证了幂等性。
ignore_errors: yes 用于容错,如果服务器上本来就没有 sources.list 文件,则忽略 mv 命令的错误。
任务 2: 部署新的 source.list 文件:
使用 copy 模块将控制机上准备好的 files/sources.list 文件复制到远程服务器的 /etc/apt/ 目录下。
notify: - 更新 apt 缓存 表示只有当 copy 模块实际替换了文件时,才会触发名为 更新 apt 缓存 的 handler。
handlers:
name: 更新 apt 缓存: 定义了一个 handler。
ansible.builtin.apt: update_cache: yes: 使用 apt 模块来执行 apt-get update 操作,这比直接使用 command: apt-get update 更好,因为 apt 模块是幂等的,并且能更好地处理各种情况。
cache_valid_time: 3600: 这是一个性能优化。它告诉 Ansible,如果距离上次更新缓存不到 3600 秒,就不要再执行 update_cache,从而避免了不必要的网络开销和时间浪费。
4.运行Playbook

然后,在项目根目录下运行Playbook:

ansible-playbook configure_apt.yml

出现以下结果就是成功了:

Playbook 执行成功后,你可以登录到任意一台目标服务器,验证 APT 源是否已更新。

# 登录到目标服务器
ssh root@node1

# 查看文件内容是否已更新
cat /etc/apt/sources.list

# 或者执行 apt update 查看输出
apt update
你应该能看到 apt update 的输出中显示正在从 mirrors.aliyun.com 下载软件包列表,并且 sources.list 文件的内容也已更新。
这个 Playbook 同样是可复用和幂等的,非常适合用于批量配置 Debian/Ubuntu 服务器的软件源。


http://www.dtcms.com/a/474905.html

相关文章:

  • SNH48 抢购助手:从软件授权到自动化交易
  • 怎么把网站排名排上去软件开发费用明细
  • 写作网站招聘大连建设局网站地址
  • Java、C语言、Python、PHP、C#、C++编程语言的选择指南
  • 网站管理建设的总结国内永久免费crm代码
  • fastadmin 关闭日志 /runtime/log 这里的日志 关闭
  • 多模态项目:Python人脸表情系统 CNN算法 神经网络+Adaboost定位+PyQt5界面 源码+文档 深度学习实战✅
  • 网站建设年费重庆九龙坡区最新消息
  • gStreamer Wifi 获取无线摄像头实时画面测试,CMD命令调用gStreamer 获取无线摄像头实时画面
  • 平邑的网站都是谁做的网站建设新闻发布注意什么
  • 有意义网站达州网站建设公司
  • 如何正确转换日期格式
  • 做漫画网站网站前端设计公司
  • 【c++】set和map的封装
  • Linux awk 命令完全指南:从基础语法到运维实战
  • 杭州网站关键词推广程序可以做网站吗
  • 教育行业网站设计网站如何验证登陆状态
  • Linux 网络调优之重新认识 Linux 本机网络
  • 万网如何建网站html网站建设实例代码
  • Attention Is All You Need 学习笔记
  • 凡科网站怎样做重庆潼南网站建设
  • Communication Stack简介
  • 多种二分查找
  • 比较好的免费外贸网站东莞皮具网站建设
  • 三好街 做网站丢盖网logo制作免费
  • 储能电池厂追溯升级:电芯卷绕、注液到 Pack 成品的全生命周期数据
  • 茶类网站建设方案四川工程信息网官网
  • 水田智能监控系统
  • 怎么找出网站的备案号阿帕奇网站搭建
  • 网站服务器地址怎么查wordpress 本地 域名绑定