-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrhel6-repo-local-mirror.yml
48 lines (41 loc) · 1.46 KB
/
rhel6-repo-local-mirror.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
---
- hosts: repohost1
vars:
repoid: ['epel', 'rhel-6-server-rpms', 'rhel-6-server-optional-rpms', 'rhel-6-sever-extras-rpms']
repodir: /var/www/html
logdir: /var/log/repo
logdate: "{{ lookup('pipe','date +%d%m%Y_%H%M%S') }}"
tasks:
- name: Repo logs directory
file:
path: "{{ logdir }}"
state: directory
- name: Repo data directory
file:
path: "{{ repodir }}/{{ item }}"
state: directory
owner: apache
group: wheel
mode: 0755
with_items:
- "{{ repoid }}"
- name: Log repo state before the sync
shell: "ls -ltr {{ repodir }}/{{ item }}/Packages > {{ logdir }}/{{ item }}.{{ logdate }}.pre_sync.log 2>&1"
with_items:
- "{{ repoid }}"
- name: Sync yum repos to a local directory
shell: reposync -r {{ item }} -p {{ repodir }} >> {{ logdir }}/{{ item }}.{{ logdate }}.sync.log 2>&1"
with_items:
- "{{ repoid }}
- name: Create the rpm metadata
shell: createrepo {{ repodir }}/{{ item }}
with_items:
- "{{ repoid }}
- name: List of new packages downloaded
shell: "cat {{ logdir }}/{{ item }}.{{ logdate }}.sync.log | grep Downloading | /bin/awk -F'/' '{print $2}' > {{ logdir }}/{{ item }}.{{ logdate }}.diff.log 2>&1"
with_items:
- "{{ repoid }}"
- name: Log repo state after the sync
shell: "ls -ltr {{ repodir }}/{{ item }}/Packages > {{ logdir }}/{{ item }}.{{ logdate }}.post_sync.log 2>&1"
with_items:
- "{{ repoid }}"