63 lines
1.9 KiB
YAML
63 lines
1.9 KiB
YAML
---
|
|
- name: Configure APT Proxy on Debian/Ubuntu hosts
|
|
hosts: debian_clients
|
|
become: yes
|
|
gather_facts: yes
|
|
|
|
vars:
|
|
apt_proxy_host: 100.103.48.78
|
|
apt_proxy_port: 3142
|
|
apt_proxy_file: /etc/apt/apt.conf.d/01proxy
|
|
|
|
tasks:
|
|
- name: Verify OS compatibility
|
|
ansible.builtin.assert:
|
|
that:
|
|
- ansible_os_family == "Debian"
|
|
fail_msg: "Host {{ inventory_hostname }} is not Debian-based. Skipping."
|
|
success_msg: "Host {{ inventory_hostname }} is Debian-based."
|
|
tags: verify
|
|
|
|
- name: Create APT proxy configuration
|
|
ansible.builtin.copy:
|
|
dest: "{{ apt_proxy_file }}"
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
content: |
|
|
Acquire::http::Proxy "http://{{ apt_proxy_host }}:{{ apt_proxy_port }}/";
|
|
Acquire::https::Proxy "false";
|
|
register: proxy_conf
|
|
tags: config
|
|
|
|
- name: Ensure APT cache directories exist
|
|
ansible.builtin.file:
|
|
path: /var/cache/apt/archives
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: '0755'
|
|
tags: config
|
|
|
|
- name: Test APT proxy connection (dry-run)
|
|
ansible.builtin.command: >
|
|
apt-get update --print-uris -o Acquire::http::Proxy="http://{{ apt_proxy_host }}:{{ apt_proxy_port }}/"
|
|
register: apt_proxy_test
|
|
changed_when: false
|
|
failed_when: apt_proxy_test.rc != 0
|
|
tags: verify
|
|
|
|
- name: Display proxy test result
|
|
ansible.builtin.debug:
|
|
msg: |
|
|
✅ {{ inventory_hostname }} is using APT proxy {{ apt_proxy_host }}:{{ apt_proxy_port }}
|
|
{{ apt_proxy_test.stdout | default('') }}
|
|
when: apt_proxy_test.rc == 0
|
|
tags: verify
|
|
|
|
- name: Display failure if APT proxy test failed
|
|
ansible.builtin.debug:
|
|
msg: "⚠️ {{ inventory_hostname }} failed to reach APT proxy at {{ apt_proxy_host }}:{{ apt_proxy_port }}"
|
|
when: apt_proxy_test.rc != 0
|
|
tags: verify
|