新闻中心
新闻中心与新手教程
新闻中心与新手教程
发布时间:2024-10-14 14:53:22
configure_apt_sources.yml
:---
- hosts: all
become: yes
vars:
debian_codename_mapping:
'8': 'jessie'
'9': 'stretch'
'10': 'buster'
'11': 'bullseye'
'12': 'bookworm'
ubuntu_codename_mapping:
'18.04': 'bionic'
'20.04': 'focal'
'22.04': 'jammy'
'23.10': 'mantic'
tasks:
- name: determine os family
ansible.builtin.set_fact:
os_family: "{{ ansible_facts['os_family'] }}"
- name: configure debian sources
ansible.builtin.template:
src: debian_sources.list.j2
dest: /etc/apt/sources.list
when: os_family == "debian" and ansible_distribution != "ubuntu"
- name: configure ubuntu sources
ansible.builtin.template:
src: ubuntu_sources.list.j2
dest: /etc/apt/sources.list
when: os_family == "debian" and ansible_distribution == "ubuntu"
- name: update apt cache
ansible.builtin.apt:
update_cache: yes
debian_sources.list.j2
:{% set codename = debian_codename_mapping[ansible_distribution_major_version] | default(ansible_distribution_release) %}
deb http://deb.debian.org/debian {{ codename }} main
deb-src http://deb.debian.org/debian {{ codename }} main
deb http://deb.debian.org/debian-security/ {{ codename }}-security main
deb-src http://deb.debian.org/debian-security/ {{ codename }}-security main
deb http://deb.debian.org/debian {{ codename }}-updates main
deb-src http://deb.debian.org/debian {{ codename }}-updates main
ubuntu_sources.list.j2
:{% set codename = ubuntu_codename_mapping[ansible_distribution_version] | default(ansible_distribution_release) %}
deb http://archive.ubuntu.com/ubuntu/ {{ codename }} main restricted
deb-src http://archive.ubuntu.com/ubuntu/ {{ codename }} main restricted
deb http://archive.ubuntu.com/ubuntu/ {{ codename }}-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu/ {{ codename }}-updates main restricted
deb http://archive.ubuntu.com/ubuntu/ {{ codename }} universe
deb-src http://archive.ubuntu.com/ubuntu/ {{ codename }} universe
deb http://archive.ubuntu.com/ubuntu/ {{ codename }}-updates universe
deb-src http://archive.ubuntu.com/ubuntu/ {{ codename }}-updates universe
deb http://archive.ubuntu.com/ubuntu/ {{ codename }} multiverse
deb-src http://archive.ubuntu.com/ubuntu/ {{ codename }} multiverse
deb http://archive.ubuntu.com/ubuntu/ {{ codename }}-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu/ {{ codename }}-updates multiverse
deb http://archive.ubuntu.com/ubuntu/ {{ codename }}-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ {{ codename }}-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu {{ codename }}-security main restricted
deb-src http://security.ubuntu.com/ubuntu {{ codename }}-security main restricted
deb http://security.ubuntu.com/ubuntu {{ codename }}-security universe
deb-src http://security.ubuntu.com/ubuntu {{ codename }}-security universe
deb http://security.ubuntu.com/ubuntu {{ codename }}-security multiverse
deb-src http://security.ubuntu.com/ubuntu {{ codename }}-security multiverse
ansible-playbook -i inventory_file configure_apt_sources.yml
debian_codename_mapping
和 ubuntu_codename_mapping
是否包含目标系统的版本。如果没有,添加相应的映射。/etc/apt/sources.list
。become: yes
,或者使用 ansible-playbook
命令时加上 -b
或 --become
参数。debian_sources.list.j2
和 ubuntu_sources.list.j2
) 在正确的位置,通常是在playbook同一目录下的 templates
文件夹中。记得定期更新映射以支持新的发行版本。对于生产环境,建议使用官方支持的长期支持(lts)版本。
这个ansible playbook和相关模板文件为您提供了一个自动化配置debian和ubuntu系统apt源的框架。它使用版本映射来确保为不同的系统版本选择正确的代号(codename)。
主要步骤包括:
我还提供了一些常见问题的故障排查建议,涵盖了版本不匹配、权限问题、模板文件缺失、网络问题等情况。
感谢:www.05vm.com www.nj0827.net