39 lines
1.4 KiB
YAML
39 lines
1.4 KiB
YAML
---
|
|
- name: 备份升级前 FRR 配置(仅远端)
|
|
ansible.builtin.command: cp -a /etc/frr /var/backups/frr-before-dn42
|
|
args:
|
|
creates: /var/backups/frr-before-dn42
|
|
- name: 安装 FRR 官方仓库签名密钥
|
|
ansible.builtin.get_url:
|
|
url: https://deb.frrouting.org/frr/keys.gpg
|
|
dest: /usr/share/keyrings/frrouting.gpg
|
|
mode: '0644'
|
|
- name: 配置 FRR 10.7 官方仓库
|
|
ansible.builtin.copy:
|
|
dest: /etc/apt/sources.list.d/frr.list
|
|
mode: '0644'
|
|
content: |
|
|
deb [signed-by=/usr/share/keyrings/frrouting.gpg] https://deb.frrouting.org/frr noble frr-10.7
|
|
register: frr_repo
|
|
- name: 安装支持 link-local peering 的固定 FRR 版本
|
|
ansible.builtin.apt:
|
|
name:
|
|
- frr=10.7.1-0~ubuntu24.04.1
|
|
- frr-pythontools=10.7.1-0~ubuntu24.04.1
|
|
update_cache: true
|
|
cache_valid_time: '{{ 0 if frr_repo.changed else 3600 }}'
|
|
dpkg_options: force-confdef,force-confold
|
|
register: frr_package
|
|
notify: 重启 FRR
|
|
- name: 检查 FRR 后台进程是否仍引用旧二进制
|
|
ansible.builtin.shell: readlink /proc/$(cat /run/frr/bgpd.pid)/exe
|
|
changed_when: false
|
|
register: frr_running
|
|
- name: 调度切换已升级的 FRR 进程
|
|
ansible.builtin.debug:
|
|
msg: 检查进程是否需要重启以使用已安装的 10.7.1
|
|
changed_when: "'(deleted)' in frr_running.stdout"
|
|
notify: 重启 FRR
|
|
- name: 完成 FRR 升级
|
|
ansible.builtin.meta: flush_handlers
|