Merge branch 'main' of ssh://pagure.io/fedora-infra/ansible

This commit is contained in:
Nick Bebout 2021-04-21 16:39:59 -05:00
commit 832455904e
81 changed files with 501 additions and 450 deletions

View file

@ -0,0 +1,16 @@
#
DEBUGINFOD_PORT="8002"
DEBUGINFOD_VERBOSE="-vv"
DEBUGINFOD_PATHS="--fdcache-fds=512 -t3600 -R /mnt/fedora_koji_prod/koji/packages -X /data/ -I \.(module_f|fc)(32|33|34|35)[.+].*\.rpm"
# prefer reliability/durability over performance
#DEBUGINFOD_PRAGMAS="-D 'pragma synchronous=full;'"
# upstream debuginfods
#DEBUGINFOD_URLS="http://secondhost:8002 http://thirdhost:8002"
#DEBUGINFOD_TIMEOUT="5"
#DEBUGINFOD_CACHE_DIR=""
# Don't use tmpfs /tmp on scarce-RAM machine.
TMPDIR=/var/tmp

View file

@ -91,7 +91,7 @@ virt_install_command_one_nic: virt-install -n {{ inventory_hostname }}
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }} --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }}
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} console=tty0 console=ttyS0 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }} console=tty0 console=ttyS0
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none' ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none'
--network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }} --network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }}
@ -101,7 +101,7 @@ virt_install_command_two_nic: virt-install -n {{ inventory_hostname }}
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }} --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }}
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} console=tty0 console=ttyS0 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }} console=tty0 console=ttyS0
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none
ip={{ eth1_ip }}:::{{ nm }}:{{ inventory_hostname_short }}-nfs:eth1:none' ip={{ eth1_ip }}:::{{ nm }}:{{ inventory_hostname_short }}-nfs:eth1:none'
@ -113,7 +113,7 @@ virt_install_command_one_nic_unsafe: virt-install -n {{ inventory_hostname }}
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} console=tty0 console=ttyS0 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }} console=tty0 console=ttyS0
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none' ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none'
--network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }} --network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }}
@ -123,7 +123,7 @@ virt_install_command_two_nic_unsafe: virt-install -n {{ inventory_hostname }}
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} console=tty0 console=ttyS0 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }} console=tty0 console=ttyS0
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth1_ip }}:::{{ nm }}:{{ inventory_hostname_short }}-nfs:eth1:none ip={{ eth1_ip }}:::{{ nm }}:{{ inventory_hostname_short }}-nfs:eth1:none
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none' ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none'
@ -135,7 +135,7 @@ virt_install_command_ppc64le_one_nic_unsafe: virt-install -n {{ inventory_hostna
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} console=tty0 console=ttyS0 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }} console=tty0 console=ttyS0
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none' ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none'
--network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }} --network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }}
@ -145,7 +145,7 @@ virt_install_command_ppc64le_two_nic_unsafe: virt-install -n {{ inventory_hostna
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} console=tty0 console=ttyS0 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }} console=tty0 console=ttyS0
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none
ip={{ eth1_ip }}:::{{ nm }}:{{ inventory_hostname_short }}-nfs:eth1:none' ip={{ eth1_ip }}:::{{ nm }}:{{ inventory_hostname_short }}-nfs:eth1:none'
@ -157,7 +157,7 @@ virt_install_command_aarch64_one_nic: virt-install -n {{ inventory_hostname }}
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }} --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }}
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }}
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none' ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none'
--network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }} --network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }}
@ -167,7 +167,7 @@ virt_install_command_aarch64_one_nic_unsafe: virt-install -n {{ inventory_hostna
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }}
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none' ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none'
--network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }} --network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }}
@ -177,7 +177,7 @@ virt_install_command_aarch64_2nd_nic: virt-install -n {{ inventory_hostname }}
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }} --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }}
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }}
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none' ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none'
--network bridge={{ nfs_bridge }},model=virtio,mac={{ mac_address }} --network bridge={{ nfs_bridge }},model=virtio,mac={{ mac_address }}
@ -187,7 +187,7 @@ virt_install_command_aarch64_two_nic: virt-install -n {{ inventory_hostname }}
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }} --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }}
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }}
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none
ip={{ eth1_ip }}:::{{ nm }}:{{ inventory_hostname_short }}-nfs:eth1:none' ip={{ eth1_ip }}:::{{ nm }}:{{ inventory_hostname_short }}-nfs:eth1:none'
@ -199,7 +199,7 @@ virt_install_command_armv7_one_nic: virt-install -n {{ inventory_hostname }} --a
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }} --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }}
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} console=tty0 console=ttyAMA0 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }} console=tty0 console=ttyAMA0
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none' ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none'
--network bridge={{ main_bridge }} --network bridge={{ main_bridge }}
@ -209,7 +209,7 @@ virt_install_command_armv7_one_nic_unsafe: virt-install -n {{ inventory_hostname
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} console=tty0 console=ttyAMA0 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }} console=tty0 console=ttyAMA0
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none' ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none'
--network bridge={{ main_bridge }} --network bridge={{ main_bridge }}
@ -219,7 +219,7 @@ virt_install_command_s390x_one_nic: virt-install -n {{ inventory_hostname }}
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }} --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }}
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }}
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none' ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none'
--network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }} --network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }}
@ -229,7 +229,7 @@ virt_install_command_s390x_one_nic_unsafe: virt-install -n {{ inventory_hostname
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio --memory={{ mem_size }},maxmemory={{ max_mem_size }} --memballoon virtio
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }},cache=unsafe,io=threads
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
'net.ifnames=0 ksdevice=eth0 ks={{ ks_url }} 'net.ifnames=0 inst.ksdevice=eth0 inst.ks={{ ks_url }}
hostname={{ inventory_hostname }} nameserver={{ dns }} hostname={{ inventory_hostname }} nameserver={{ dns }}
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none' ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none'
--network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }} --network bridge={{ main_bridge }},model=virtio,mac={{ mac_address }}
@ -239,7 +239,7 @@ virt_install_command_rhel6: virt-install -n {{ inventory_hostname }}
--memory={{ mem_size }},maxmemory={{ max_mem_size }} --memory={{ mem_size }},maxmemory={{ max_mem_size }}
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }} --disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }}
--vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x --vcpus={{ num_cpus }},maxvcpus={{ max_cpu }} -l {{ ks_repo }} -x
"ksdevice=eth0 ks={{ ks_url }} ip={{ eth0_ip }} netmask={{ nm }} "inst.ksdevice=eth0 inst.ks={{ ks_url }} ip={{ eth0_ip }} netmask={{ nm }}
gateway={{ gw }} dns={{ dns }} console=tty0 console=ttyS0 gateway={{ gw }} dns={{ dns }} console=tty0 console=ttyS0
hostname={{ inventory_hostname }}" hostname={{ inventory_hostname }}"
--network=bridge=br0 --autostart --noautoconsole --watchdog default --network=bridge=br0 --autostart --noautoconsole --watchdog default
@ -426,3 +426,6 @@ sshd_sftp: false
# Autodetect python version # Autodetect python version
# #
ansible_python_interpreter: auto ansible_python_interpreter: auto
# set no x-forward header by default
x_forward: false

View file

@ -2,12 +2,12 @@
# common items for the buildvm-* koji builders # common items for the buildvm-* koji builders
volgroup: /dev/vg_guests volgroup: /dev/vg_guests
lvm_size: 140000 lvm_size: 140000
mem_size: 24576 mem_size: 40960
max_mem_size: "{{ mem_size }}" max_mem_size: "{{ mem_size }}"
num_cpus: 5 num_cpus: 5
max_cpu: "{{ num_cpus }}" max_cpu: "{{ num_cpus }}"
ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-33-armv7 ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-34-armv7
ks_repo: http://10.3.163.35/pub/fedora/linux/releases/33/Server/armhfp/os/ ks_repo: http://10.3.163.35/pub/fedora/linux/development/34/Server/armhfp/os/
nm: 255.255.255.0 nm: 255.255.255.0
gw: 10.3.167.254 gw: 10.3.167.254
dns: 10.3.163.33 dns: 10.3.163.33

View file

@ -1,6 +1,7 @@
--- ---
virthost: true virthost: true
vpn: true
primary_auth_source: ipa primary_auth_source: ipa
ipa_host_group: vmhost-copr ipa_host_group: vmhost-copr
ipa_host_group_desc: VM hosts for COPR ipa_host_group_desc: VM hosts for COPR
@ -9,15 +10,10 @@ ipa_client_shell_groups:
ipa_client_sudo_groups: ipa_client_sudo_groups:
- sysadmin-copr - sysadmin-copr
nrpe_procs_warn: 1400 nrpe_procs_warn: 1400
nrpe_procs_crit: 1500 nrpe_procs_crit: 1500
# These variables are pushed into /etc/system_identification by the base role. vpn: true
# Groups and individual hosts should override them with specific info.
# See http://infrastructure.fedoraproject.org/csi/security-policy/
vpn: false
postfix_group: copr postfix_group: copr
postfix_maincf: "postfix/main.cf/main.cf.copr" postfix_maincf: "postfix/main.cf/main.cf.copr"

View file

@ -2,6 +2,15 @@
freezes: false freezes: false
sudoers: "{{ private }}/files/sudo/arm-packager-sudoers" sudoers: "{{ private }}/files/sudo/arm-packager-sudoers"
sudoers_main: nopasswd sudoers_main: nopasswd
host_group: cloud
datacenter: aws datacenter: aws
ansible_ifcfg_blocklist: true ansible_ifcfg_blocklist: true
vpn: true
primary_auth_source: ipa
ipa_host_group: maintainer_test
ipa_host_group_desc: Test hosts for package maintainers
ipa_client_shell_groups:
- packager
ipa_client_sudo_nopasswd_groups:
- sysadmin-main
- packager

View file

@ -6,7 +6,6 @@ external_hostname: openqa.fedoraproject.org
openqa_dbname: openqa openqa_dbname: openqa
openqa_dbuser: openqa openqa_dbuser: openqa
openqa_dbpassword: "{{ prod_openqa_dbpassword }}" openqa_dbpassword: "{{ prod_openqa_dbpassword }}"
openqa_assetsize: 500
openqa_key: "{{ prod_openqa_apikey }}" openqa_key: "{{ prod_openqa_apikey }}"
openqa_secret: "{{ prod_openqa_apisecret }}" openqa_secret: "{{ prod_openqa_apisecret }}"

View file

@ -17,9 +17,7 @@ external_hostname: openqa.stg.fedoraproject.org
openqa_dbname: openqa-stg openqa_dbname: openqa-stg
openqa_dbuser: openqastg openqa_dbuser: openqastg
openqa_dbpassword: "{{ stg_openqa_dbpassword }}" openqa_dbpassword: "{{ stg_openqa_dbpassword }}"
openqa_assetsize: 400 openqa_assetsize_ppc: 300
openqa_assetsize_ppc: 150
openqa_assetsize_aarch64: 150
openqa_key: "{{ stg_openqa_apikey }}" openqa_key: "{{ stg_openqa_apikey }}"
openqa_secret: "{{ stg_openqa_apisecret }}" openqa_secret: "{{ stg_openqa_apisecret }}"

View file

@ -9,7 +9,9 @@ openqa_nickname: adamwill
openqa_fullname: Adam Williamson openqa_fullname: Adam Williamson
openqa_userid: http://adamwill.id.fedoraproject.org/ openqa_userid: http://adamwill.id.fedoraproject.org/
openqa_assetsize_updates: 100 openqa_assetsize: 600
openqa_assetsize_aarch64: 300
openqa_assetsize_updates: 200
# stg and prod use the same database server # stg and prod use the same database server
openqa_dbhost: db-openqa01.iad2.fedoraproject.org openqa_dbhost: db-openqa01.iad2.fedoraproject.org

View file

@ -11,5 +11,5 @@ nagios_Check_Services:
# Set some bodhi variables here. # Set some bodhi variables here.
# Since they are used when running playbooks against the master nodes. # Since they are used when running playbooks against the master nodes.
# #
bodhi_version: "5.6.1" bodhi_version: "5.7.0"
bodhi_openshift_pods: 1 bodhi_openshift_pods: 1

View file

@ -1,3 +1,2 @@
datacenter: aws datacenter: aws
inventory_hostname: "aarch64-test01.fedorainfracloud.org" inventory_hostname: "aarch64-test01.fedorainfracloud.org"

View file

@ -6,13 +6,14 @@ dns1: 10.3.163.33
dns2: 10.3.163.34 dns2: 10.3.163.34
has_ipv4: yes has_ipv4: yes
eth0_ip: 10.3.167.46
eth0_ipv4: 10.3.167.46 eth0_ipv4: 10.3.167.46
eth0_ipv4_nm: 24 eth0_ipv4_nm: 24
eth0_ipv4_gw: 10.3.167.254 eth0_ipv4_gw: 10.3.167.254
has_ipv6: no has_ipv6: no
mac0: 52:54:00:d7:04:aa mac0: 52:54:00:d4:6a:ca
network_connections: network_connections:
- name: eth0 - name: eth0

View file

@ -5,13 +5,14 @@ dns1: 10.3.163.33
dns2: 10.3.163.34 dns2: 10.3.163.34
has_ipv4: yes has_ipv4: yes
eth0_ip: 10.3.171.53
eth0_ipv4: 10.3.171.53 eth0_ipv4: 10.3.171.53
eth0_ipv4_nm: 24 eth0_ipv4_nm: 24
eth0_ipv4_gw: 10.3.171.254 eth0_ipv4_gw: 10.3.171.254
has_ipv6: no has_ipv6: no
mac0: 52:54:00:f0:f0:eb mac0: 52:54:00:36:bc:34
network_connections: network_connections:
- name: eth0 - name: eth0

View file

@ -5,13 +5,14 @@ dns1: 10.3.163.33
dns2: 10.3.163.34 dns2: 10.3.163.34
has_ipv4: yes has_ipv4: yes
eth0_ip: 10.3.171.55
eth0_ipv4: 10.3.171.55 eth0_ipv4: 10.3.171.55
eth0_ipv4_nm: 24 eth0_ipv4_nm: 24
eth0_ipv4_gw: 10.3.171.254 eth0_ipv4_gw: 10.3.171.254
has_ipv6: no has_ipv6: no
mac0: 52:54:00:1e:dc:92 mac0: 52:54:00:68:64:dc
network_connections: network_connections:
- name: eth0 - name: eth0

View file

@ -5,13 +5,14 @@ dns1: 10.3.163.33
dns2: 10.3.163.34 dns2: 10.3.163.34
has_ipv4: yes has_ipv4: yes
eth0_ip: 10.3.171.56
eth0_ipv4: 10.3.171.56 eth0_ipv4: 10.3.171.56
eth0_ipv4_nm: 24 eth0_ipv4_nm: 24
eth0_ipv4_gw: 10.3.171.254 eth0_ipv4_gw: 10.3.171.254
has_ipv6: no has_ipv6: no
mac0: 52:54:00:a0:6b:4f mac0: 52:54:00:cb:57:ef
network_connections: network_connections:
- name: eth0 - name: eth0

View file

@ -5,13 +5,14 @@ dns1: 10.3.163.33
dns2: 10.3.163.34 dns2: 10.3.163.34
has_ipv4: yes has_ipv4: yes
eth0_ip: 10.3.171.60
eth0_ipv4: 10.3.171.60 eth0_ipv4: 10.3.171.60
eth0_ipv4_nm: 24 eth0_ipv4_nm: 24
eth0_ipv4_gw: 10.3.171.254 eth0_ipv4_gw: 10.3.171.254
has_ipv6: no has_ipv6: no
mac0: 52:54:00:1e:bf:c1 mac0: 52:54:00:e0:0f:d5
network_connections: network_connections:
- name: eth0 - name: eth0

View file

@ -1,19 +0,0 @@
---
tcp_ports: [22]
datacenter: aws
nagios_Check_Services:
mail: false
nrpe: false
sshd: false
named: false
dhcpd: false
httpd: false
swap: false
ping: false
raid: false
ansible_ssh_user: centos
ansible_become: true
ansible_become_user: root
ansible_become_method: sudo

View file

@ -0,0 +1,12 @@
---
nm: 255.255.255.0
gw: 10.3.166.254
dns: 10.3.163.33
ks_url: http://10.3.163.35/repo/rhel/ks/kvm-rhel-8-iad2
ks_repo: http://10.3.163.35/repo/rhel/RHEL8-x86_64/
volgroup: /dev/vg_guests
eth0_ip: 10.3.166.63
vmhost: vmhost-x86-02.stg.iad2.fedoraproject.org
datacenter: iad2
## REMEMBER ONLY SET THIS TO TRUE WHEN WIPING SYSTEM TO MINIMUM
ipa_initial: false

View file

@ -115,12 +115,6 @@ virthost-cc-rdu03.fedoraproject.org
vmhost-x86-cc06.rdu-cc.fedoraproject.org vmhost-x86-cc06.rdu-cc.fedoraproject.org
vmhost-x86-cc05.rdu-cc.fedoraproject.org vmhost-x86-cc05.rdu-cc.fedoraproject.org
[vmhost_copr]
vmhost-x86-copr01.rdu-cc.fedoraproject.org
vmhost-x86-copr02.rdu-cc.fedoraproject.org
vmhost-x86-copr03.rdu-cc.fedoraproject.org
vmhost-x86-copr04.rdu-cc.fedoraproject.org
[datagrepper] [datagrepper]
datagrepper01.iad2.fedoraproject.org datagrepper01.iad2.fedoraproject.org
datagrepper02.iad2.fedoraproject.org datagrepper02.iad2.fedoraproject.org
@ -308,6 +302,7 @@ ipa03.iad2.fedoraproject.org
[ipa_stg] [ipa_stg]
ipa01.stg.iad2.fedoraproject.org ipa01.stg.iad2.fedoraproject.org
ipa02.stg.iad2.fedoraproject.org
[ipsilon_stg] [ipsilon_stg]
ipsilon01.stg.iad2.fedoraproject.org ipsilon01.stg.iad2.fedoraproject.org
@ -669,6 +664,7 @@ oci-registry01.stg.iad2.fedoraproject.org
# fedimg01.stg.iad2.fedoraproject.org # fedimg01.stg.iad2.fedoraproject.org
github2fedmsg01.stg.iad2.fedoraproject.org github2fedmsg01.stg.iad2.fedoraproject.org
ipa01.stg.iad2.fedoraproject.org ipa01.stg.iad2.fedoraproject.org
ipa02.stg.iad2.fedoraproject.org
ipsilon01.stg.iad2.fedoraproject.org ipsilon01.stg.iad2.fedoraproject.org
koji01.stg.iad2.fedoraproject.org koji01.stg.iad2.fedoraproject.org
#mailman01.stg.iad2.fedoraproject.org #mailman01.stg.iad2.fedoraproject.org
@ -998,6 +994,9 @@ copr_dev_aws
[copr_hypervisor] [copr_hypervisor]
vmhost-x86-copr01.rdu-cc.fedoraproject.org vmhost-x86-copr01.rdu-cc.fedoraproject.org
vmhost-x86-copr02.rdu-cc.fedoraproject.org
vmhost-x86-copr03.rdu-cc.fedoraproject.org
vmhost-x86-copr04.rdu-cc.fedoraproject.org
[copr_db_all:children] [copr_db_all:children]
copr_db_stg copr_db_stg

View file

@ -68,6 +68,10 @@
mnt_dir: '/pub/' mnt_dir: '/pub/'
nfs_src_dir: 'fedora_ftp/fedora.redhat.com/pub/' nfs_src_dir: 'fedora_ftp/fedora.redhat.com/pub/'
- role: nfs/client
mnt_dir: '/pub/archive'
nfs_src_dir: 'fedora_ftp_archive'
- role: keytab/service - role: keytab/service
owner_user: apache owner_user: apache
owner_group: apache owner_group: apache

View file

@ -14,13 +14,11 @@
tasks: tasks:
- import_role: name=base - import_role: name=base
- import_role: name=hosts - import_role: name=hosts
- import_role: name=fas_client
- import_role: name=rkhunter - import_role: name=rkhunter
- import_role: name=nagios_client - import_role: name=nagios_client
- import_role: name=openvpn/client - import_role: name=openvpn/client
- import_role: name=sudo - import_role: name=ipa/client
- import_tasks: "{{ tasks_path }}/2fa_client.yml"
- import_tasks: "{{ tasks_path }}/motd.yml" - import_tasks: "{{ tasks_path }}/motd.yml"
handlers: handlers:

View file

@ -29,5 +29,23 @@
tasks: tasks:
- import_tasks: "{{ tasks_path }}/motd.yml" - import_tasks: "{{ tasks_path }}/motd.yml"
- name: install debuginfod
package: name=elfutils-debuginfod state=present
- name: install sqlite for diagnostics
package: name=sqlite state=present
- name: install rsync for data backups
package: name=rsync state=present
- name: install debuginfod configuration
copy: src="{{ files }}/debuginfod/sysconfig.debuginfod" dest=/etc/sysconfig/debuginfod owner=root group=root mode=644
- name: ensure debuginfod is enabled and started
service:
name: debuginfod
state: started
enabled: yes
handlers: handlers:
- import_tasks: "{{ handlers_path }}/restart_services.yml" - import_tasks: "{{ handlers_path }}/restart_services.yml"

View file

@ -38,6 +38,7 @@
- download - download
- rsyncd - rsyncd
- { role: nfs/client, when: datacenter == "iad2" or datacenter == "rdu", mnt_dir: '/srv/pub', nfs_src_dir: 'fedora_ftp/fedora.redhat.com/pub' } - { role: nfs/client, when: datacenter == "iad2" or datacenter == "rdu", mnt_dir: '/srv/pub', nfs_src_dir: 'fedora_ftp/fedora.redhat.com/pub' }
- { role: nfs/client, when: datacenter == "iad2" or datacenter == "rdu", mnt_dir: '/srv/pub/archive', nfs_src_dir: 'fedora_ftp_archive' }
- { role: nfs/client, when: datacenter == "iad2", mnt_dir: '/mnt/koji', nfs_src_dir: 'fedora_koji/koji/' } # needed for internal sync and odcs - { role: nfs/client, when: datacenter == "iad2", mnt_dir: '/mnt/koji', nfs_src_dir: 'fedora_koji/koji/' } # needed for internal sync and odcs
- { role: nfs/client, when: datacenter == "iad2", mnt_dir: '/srv/odcs', nfs_src_dir: 'fedora_odcs' } # needed for internal sync - { role: nfs/client, when: datacenter == "iad2", mnt_dir: '/srv/odcs', nfs_src_dir: 'fedora_odcs' } # needed for internal sync
- sudo - sudo

View file

@ -1,58 +1,5 @@
- import_playbook: "/srv/web/infra/ansible/playbooks/include/virt-create.yml myhosts=aarch64_test:armv7_test"
- name: Do some basic cloud setup on them
hosts: maintainer_test:aarch64_test:armv7_test
gather_facts: True
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- /srv/private/ansible/vars.yml
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
pre_tasks:
- import_tasks: "{{ tasks_path }}/cloud_setup_basic.yml"
- name: set hostname (required by some services, at least postfix need it)
hostname: name="{{inventory_hostname}}"
- name: setup second disk on aws maintainer-test instances
hosts: maintainer_test:\!ppc64le-test.fedorainfracloud.org
gather_facts: True
tags:
- maintainer-test
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
tasks:
- name: make a partition on first disk
parted: device=/dev/nvme0n1 number=1 state=present
tags:
- maintainer-test
when: inventory_hostname.startswith(('f30-test'))
- name: format the partition if it's not already
filesystem: dev=/dev/nvme0n1p1 fstype=ext4
tags:
- maintainer-test
when: inventory_hostname.startswith(('f30-test'))
ignore_errors: true
- name: mount cache filesystem on /var/cache/mock
mount: path=/var/cache/mock state=mounted src=/dev/nvme0n1p1 fstype=ext4
tags:
- maintainer-test
when: inventory_hostname.startswith(('f30-test'))
- name: bind mount cache filesystem on /var/lib/mock
mount: path=/var/lib/mock state=mounted src=/var/cache/mock fstype=none opts=bind
tags:
- maintainer-test
when: inventory_hostname.startswith(('f30-test'))
- name: Setup maintainer test hosts - name: Setup maintainer test hosts
hosts: maintainer_test:aarch64_test:armv7_test hosts: maintainer_test
gather_facts: True gather_facts: True
tags: tags:
- maintainer-test - maintainer-test
@ -70,8 +17,8 @@
- base - base
- rkhunter - rkhunter
- hosts - hosts
- fas_client - openvpn/client
- sudo - ipa/client
tasks: tasks:
# this is how you include other task lists # this is how you include other task lists
@ -81,7 +28,7 @@
dnf: state=present pkg={{ item }} dnf: state=present pkg={{ item }}
with_items: with_items:
- fedora-packager - fedora-packager
when: ansible_distribution_major_version|int >= 29 and ansible_distribution == 'Fedora' when: ansible_distribution == 'Fedora'
tags: tags:
- packages - packages

View file

@ -20,6 +20,7 @@
- sudo - sudo
- collectd/base - collectd/base
- { role: nfs/client, when: inventory_hostname.startswith('mm-backend01'), mnt_dir: '/srv/pub', nfs_src_dir: 'fedora_ftp/fedora.redhat.com/pub' } - { role: nfs/client, when: inventory_hostname.startswith('mm-backend01'), mnt_dir: '/srv/pub', nfs_src_dir: 'fedora_ftp/fedora.redhat.com/pub' }
- { role: nfs/client, when: inventory_hostname.startswith('mm-backend01'), mnt_dir: '/srv/pub/archive', nfs_src_dir: 'fedora_ftp_archive' }
pre_tasks: pre_tasks:
- import_tasks: "{{ tasks_path }}/yumrepos.yml" - import_tasks: "{{ tasks_path }}/yumrepos.yml"

View file

@ -74,6 +74,11 @@
mnt_dir: '/pub' mnt_dir: '/pub'
nfs_src_dir: 'fedora_ftp/fedora.redhat.com/pub' nfs_src_dir: 'fedora_ftp/fedora.redhat.com/pub'
when: "'releng_compose' in group_names" when: "'releng_compose' in group_names"
- role: nfs/client
mnt_dir: '/srv/fedora_ftp_archive'
nfs_src_dir: 'fedora_ftp_archive'
when: inventory_hostname.startswith('compose-rawhide')
# #
# mount archive volumes on composer so we can run the archiving script there. # mount archive volumes on composer so we can run the archiving script there.
# #

View file

@ -22,7 +22,7 @@
- sudo - sudo
- { role: nfs/client, - { role: nfs/client,
mnt_dir: '/srv/pub/archive', mnt_dir: '/srv/pub/archive',
nfs_src_dir: 'fedora_ftp/fedora.redhat.com/pub/archive' } nfs_src_dir: 'fedora_ftp_archive' }
- { role: nfs/client, - { role: nfs/client,
mnt_dir: '/srv/pub/alt', mnt_dir: '/srv/pub/alt',
nfs_mount_opts: "rw,hard,bg,intr,noatime,nodev,nosuid,sec=sys,nfsvers=3", nfs_mount_opts: "rw,hard,bg,intr,noatime,nodev,nosuid,sec=sys,nfsvers=3",

View file

@ -39,6 +39,8 @@
when: master_sundries_node|bool when: master_sundries_node|bool
- role: fedora-web/build - role: fedora-web/build
when: master_sundries_node|bool when: master_sundries_node|bool
- role: fedora-web/translation
when: master_sundries_node|bool
- role: fedora-budget/build - role: fedora-budget/build
when: master_sundries_node|bool when: master_sundries_node|bool
- role: fedora-docs/build - role: fedora-docs/build

View file

@ -1,37 +0,0 @@
# create a new virthost server system
# This is a copy of the main one which is meant to be limited ONLY to vmhost_copr group for rbac
# NOTE: should be used with --limit most of the time
# NOTE: most of these vars_path come from group_vars/backup_server or from hostvars
- import_playbook: "/srv/web/infra/ansible/playbooks/include/happy_birthday.yml myhosts=vmhost_copr:!buildvmhost-s390x-01.s390.fedoraproject.org"
- name: make virthost server system
hosts: vmhost_copr
user: root
gather_facts: True
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
pre_tasks:
- include_vars: dir=/srv/web/infra/ansible/vars/all/ ignore_files=README
- import_tasks: "{{ tasks_path }}/yumrepos.yml"
roles:
- base
- rkhunter
- nagios_client
- hosts
- { role: openvpn/client, when: vpn|bool }
- virthost
- ipa/client
- collectd/base
- sudo
tasks:
- import_tasks: "{{ tasks_path }}/motd.yml"
handlers:
- import_tasks: "{{ handlers_path }}/restart_services.yml"

View file

@ -111,6 +111,12 @@
regex: /voting regex: /voting
target: https://elections.fedoraproject.org/ target: https://elections.fedoraproject.org/
- role: httpd/redirectmatch
shortname: calendar
website: apps.fedoraproject.org
regex: /calendar
target: https://calendar.fedoraproject.org/
- role: httpd/redirectmatch - role: httpd/redirectmatch
shortname: mailman shortname: mailman
website: admin.fedoraproject.org website: admin.fedoraproject.org

View file

@ -754,5 +754,6 @@
remotepath: / remotepath: /
localpath: / localpath: /
proxyurl: http://debuginfod01:8002 proxyurl: http://debuginfod01:8002
proxyopts: "connectiontimeout=600 timeout=600 keepalive=on"
tags: debuginfod tags: debuginfod

View file

@ -973,7 +973,9 @@
site_name: debuginfod.fedoraproject.org site_name: debuginfod.fedoraproject.org
sslonly: true sslonly: true
server_aliases: [debuginfod.stg.fedoraproject.org] server_aliases: [debuginfod.stg.fedoraproject.org]
x_forward: true
cert_name: "{{wildcard_cert_name}}" cert_name: "{{wildcard_cert_name}}"
gzip: true
tags: debuginfod tags: debuginfod
- role: httpd/website - role: httpd/website

View file

@ -13,7 +13,7 @@
- service: name=httpd state=stopped - service: name=httpd state=stopped
- name: bring staging services down (OpenShift web services) - name: bring staging services down (OpenShift web services)
hosts: os-master01.stg.phx2.fedoraproject.org hosts: os-master01.stg.iad2.fedoraproject.org
user: root user: root
vars_files: vars_files:
- /srv/web/infra/ansible/vars/global.yml - /srv/web/infra/ansible/vars/global.yml
@ -43,7 +43,7 @@
# Here's the meaty part in the middle # Here's the meaty part in the middle
- name: drop and re-create the staging db entirely - name: drop and re-create the staging db entirely
hosts: pgbdr01.stg.phx2.fedoraproject.org hosts: pgbdr01.stg.iad2.fedoraproject.org
user: root user: root
become: yes become: yes
become_user: postgres become_user: postgres
@ -68,7 +68,7 @@
- file: path=/var/tmp/bodhi2.dump state=absent - file: path=/var/tmp/bodhi2.dump state=absent
- name: bring staging services up (OpenShift web services) - name: bring staging services up (OpenShift web services)
hosts: os-master01.stg.phx2.fedoraproject.org hosts: os-master01.stg.iad2.fedoraproject.org
user: root user: root
vars_files: vars_files:
- /srv/web/infra/ansible/vars/global.yml - /srv/web/infra/ansible/vars/global.yml

View file

@ -76,7 +76,7 @@
tasks: tasks:
- set_fact: - set_fact:
# This will be a bool that indicates whether we need to run migrations or not. # This will be a bool that indicates whether we need to run migrations or not.
migrations: "'(head)' not in hostvars['bodhi-backend01{{ env_suffix }}.phx2.fedoraproject.org']['current_migration_version'].stdout" migrations: "'(head)' not in hostvars['bodhi-backend01{{ env_suffix }}.iad2.fedoraproject.org']['current_migration_version'].stdout"
- name: Scale down to 0 pods - name: Scale down to 0 pods
command: oc -n bodhi scale dc/bodhi-web --replicas=0 command: oc -n bodhi scale dc/bodhi-web --replicas=0
when: migrations when: migrations

View file

@ -71,28 +71,28 @@
post_tasks: post_tasks:
- name: run initial f.10 import - name: run initial f.10 import
command: "oc create job stats-10-{{ lookup('pipe','date +%s') }}-init --from=cronjob/stats-10" command: "oc -n languages create job stats-10-{{ lookup('pipe','date +%s') }}-init --from=cronjob/stats-10"
tags: tags:
- never - never
- init - init
- f10 - f10
- name: run initial f.20 import - name: run initial f.20 import
command: "oc create job stats-20-{{ lookup('pipe','date +%s') }}-init --from=cronjob/stats-20" command: "oc -n languages create job stats-20-{{ lookup('pipe','date +%s') }}-init --from=cronjob/stats-20"
tags: tags:
- never - never
- init - init
- f20 - f20
- name: run initial f.30 import - name: run initial f.30 import
command: "oc create job stats-30-{{ lookup('pipe','date +%s') }}-init --from=cronjob/stats-30" command: "oc -n languages create job stats-30-{{ lookup('pipe','date +%s') }}-init --from=cronjob/stats-30"
tags: tags:
- never - never
- init - init
- f30 - f30
- name: run initial f.latest import - name: run initial f.latest import
command: "oc create job stats-latest-{{ lookup('pipe','date +%s') }}-init --from=cronjob/stats-latest" command: "oc -n languages create job stats-latest-{{ lookup('pipe','date +%s') }}-init --from=cronjob/stats-latest"
tags: tags:
- never - never
- init - init

View file

@ -35,9 +35,21 @@
file: service.yml file: service.yml
objectname: service.yml objectname: service.yml
- command: "oc adm pod-network join-projects --to=solr fedora-packages-static"
- role: openshift/object - role: openshift/object
app: solr app: solr
file: deploymentconfig.yml file: deploymentconfig.yml
objectname: deploymentconfig.yml objectname: deploymentconfig.yml
- name: Link solr and fedora-packages-static networks
hosts: os_masters_stg[0]
user: root
gather_facts: False
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
tasks:
- name: Run oc adm command to link solr to other projects
command: "oc adm pod-network join-projects --to=solr fedora-packages-static"

View file

@ -31,7 +31,7 @@ sqlalchemy.url = postgresql://{{tahrirDBUser}}:{{tahrirDBPassword}}@db-tahrir/ta
mako.directories=tahrir:templates mako.directories=tahrir:templates
tahrir.admin = ralph@fedoraproject.org, puiterwijk@fedoraproject.org, nb@fedoraproject.org, cydrobolt@fedoraproject.org, aikidouke@fedoraproject.org, sayanchowdhury@fedoraproject.org, kevin@fedoraproject.org, jflory7@fedoraproject.org, codeblock@fedoraproject.org, mleonova@fedoraproject.org, churchyard@fedoraproject.org, bex@fedoraproject.org, asamalik@fedoraproject.org, cverna@fedoraproject.org, misc@fedoraproject.org, nasirhm@fedoraproject.org, computerkid@fedoraproject.org tahrir.admin = nb@fedoraproject.org, sayanchowdhury@fedoraproject.org, kevin@fedoraproject.org, jflory7@fedoraproject.org, codeblock@fedoraproject.org, churchyard@fedoraproject.org, misc@fedoraproject.org, computerkid@fedoraproject.org
tahrir.pngs.uri = /usr/share/badges/pngs tahrir.pngs.uri = /usr/share/badges/pngs

View file

@ -10,8 +10,10 @@ OPTIONS="layer2=1 portno=0"
DEFROUTE=yes DEFROUTE=yes
GATEWAY="{{ gw }}" GATEWAY="{{ gw }}"
{% endif %} {% endif %}
{% if hostvars[inventory_hostname].datacenter == 'iad2' %} {% if hostvars[inventory_hostname].datacenter == 'iad2' and env == 'production' %}
DOMAIN="iad2.fedoraproject.org vpn.fedoraproject.org fedoraproject.org" DOMAIN="iad2.fedoraproject.org vpn.fedoraproject.org fedoraproject.org"
{% elif hostvars[inventory_hostname].datacenter == 'iad2' and env == 'staging' %}
DOMAIN="stg.iad2.fedoraproject.org iad2.fedoraproject.org vpn.fedoraproject.org fedoraproject.org"
{% else %} {% else %}
DOMAIN="vpn.fedoraproject.org fedoraproject.org" DOMAIN="vpn.fedoraproject.org fedoraproject.org"
{% endif %} {% endif %}

View file

@ -1,107 +0,0 @@
#!/usr/bin/python -tt
# -*- coding: utf-8 -*-
# Use this script to retrieve the security_question and security_answer from FAS (requires FAS >= 0.8.14)
# Author: Patrick Uiterwijk <puiterwijk@fedoraproject.org>
#
# Copyright 2012-2021 Patrick Uiterwijk. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE FEDORA PROJECT ''AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# The views and conclusions contained in the software and documentation are those
# of the authors and should not be interpreted as representing official policies,
# either expressed or implied, of the Fedora Project.
import os
import getpass
import sys
import gpg.core
from fedora.client import AccountSystem
from fedora.client import AuthError
from fedora.client import ServerError
import argparse
from io import BytesIO
parser = argparse.ArgumentParser()
parser.add_argument('admin_user', help='The user as which to log in to retrieve the question and answer')
parser.add_argument('target_user', help='The user of which to retrieve the security question and answer')
parser.add_argument('--verbose', action='store_true')
parser.add_argument('--no-answer', action='store_true', help='Only show the question, do not decrypt the answer')
parser.add_argument('--site', help='The FAS URL to get the information from')
parser.add_argument('--insecure', action='store_true', default=False,
help='Do not check the certificate for the server. *WARNING*: Only use this for testing')
parser.add_argument('--gpg_home', help='The directory where secring.gpg and pubring.gpg reside')
args = parser.parse_args()
args.admin_pass = getpass.getpass()
if args.site == None:
args.site = 'https://admin.fedoraproject.org/accounts/'
if args.verbose:
print('Using site: %(site)s' % {'site': args.site})
if args.verbose:
if args.gpg_home == None:
print('Using default gpg_home')
else:
print('Using gpg_home: %(gpghome)s' % {'gpghome': args.gpg_home})
if args.gpg_home != None:
os.putenv('GNUPGHOME', args.gpg_home)
fas = AccountSystem(args.site, username=args.admin_user, password=args.admin_pass, insecure=args.insecure)
if args.verbose:
print('Getting user details...')
try:
details = fas.person_by_username(args.target_user)
except AuthError:
print('Failed to login to FAS. Please check admin_user and admin_pass!')
sys.exit(2)
except ServerError:
print('Failed to retrieve user details: the server reported an error!')
sys.exit(3)
if not 'username' in list(details.keys()):
print('Error: user %(username)s is not known on this FAS site!' % {'username': args.target_user})
sys.exit(4)
if not 'security_question' in list(details.keys()):
print('Error: security_question was not retrieved by FAS! Are you sure you are using FAS >= 0.8.14, and that admin_user has the privileges to retrieve security_question?')
sys.exit(5)
if details.security_question == None or details.security_answer == None:
print('Error: unable to retrieve security_question or security_answer. Are you sure you have privileges to return this information?')
sys.exit(6)
if not args.no_answer:
if args.verbose:
print('Decrypting answer...')
cipher = BytesIO(details.security_answer.encode('utf-8'))
ctx = gpg.core.Context()
plain = ctx.decrypt(cipher)[0].decode('utf8')
details.security_answer = plain
print('Security question: %(question)s' % {'question': details.security_question})
if not args.no_answer:
print('Security answer: %(answer)s' % {'answer': details.security_answer})

View file

@ -238,17 +238,6 @@
- config - config
#
# Script used to gather encrypted security questions from fas
#
- name: setup /usr/local/bin/retrieve-security-question.py
copy: src=retrieve-security-question.py dest=/usr/local/bin/retrieve-security-question.py mode=0755
tags:
- batcave
- config
# The zodbot server must allow TCP on whatever port zodbot is listening on # The zodbot server must allow TCP on whatever port zodbot is listening on
# for this to work (currently TCP port 5050). # for this to work (currently TCP port 5050).
# Once that is done, you can symlink /usr/local/bin/zodbot-announce-commits.py # Once that is done, you can symlink /usr/local/bin/zodbot-announce-commits.py

View file

@ -592,10 +592,7 @@ f{{ FedoraBranchedNumber }}.pre_beta.critpath.min_karma = 1
f{{ FedoraBranchedNumber }}.pre_beta.critpath.stable_after_days_without_negative_karma = 14 f{{ FedoraBranchedNumber }}.pre_beta.critpath.stable_after_days_without_negative_karma = 14
{% elif FedoraBranchedBodhi is defined and FedoraBranchedBodhi == 'postbeta' %} {% elif FedoraBranchedBodhi is defined and FedoraBranchedBodhi == 'postbeta' %}
f{{ FedoraBranchedNumber }}.status = post_beta f{{ FedoraBranchedNumber }}.status = post_beta
#f{{ FedoraBranchedNumber }}.post_beta.mandatory_days_in_testing = 7 f{{ FedoraBranchedNumber }}.post_beta.mandatory_days_in_testing = 7
#fesco has decided that since this cycle is so short, we will keep 3 days in testing until release.
#This should change to 7 after release.
f{{ FedoraBranchedNumber }}.post_beta.mandatory_days_in_testing = 3
f{{ FedoraBranchedNumber }}.post_beta.critpath.min_karma = 2 f{{ FedoraBranchedNumber }}.post_beta.critpath.min_karma = 2
f{{ FedoraBranchedNumber }}.post_beta.critpath.stable_after_days_without_negative_karma = 14 f{{ FedoraBranchedNumber }}.post_beta.critpath.stable_after_days_without_negative_karma = 14
{% endif %} {% endif %}

View file

@ -244,7 +244,7 @@ if($path != "./") {
// Print folder information // Print folder information
foreach($folderlist as $folder) { foreach($folderlist as $folder) {
print "<tr><td class='n'><a href='" . addslashes($folder['name']). "'>" .htmlentities($folder['name']). "</a>/</td>"; print "<tr><td class='n'><a href='" . addslashes($folder['name']). "'>" .htmlentities($folder['name']). "</a>/</td>";
print "<td class='m'>" . date('Y-M-d H:m:s', $folder['modtime']) . "</td>"; print "<td class='m'>" . date('Y-M-d H:i:s', $folder['modtime']) . "</td>";
print "<td class='s'>" . (($calculate_folder_size)?format_bytes($folder['size'], 2):'--') . "&nbsp;</td>"; print "<td class='s'>" . (($calculate_folder_size)?format_bytes($folder['size'], 2):'--') . "&nbsp;</td>";
print "<td class='t'>" . $folder['file_type'] . "</td></tr>"; print "<td class='t'>" . $folder['file_type'] . "</td></tr>";
} }
@ -255,7 +255,7 @@ foreach($folderlist as $folder) {
// Print file information // Print file information
foreach($filelist as $file) { foreach($filelist as $file) {
print "<tr><td class='n'><a href='" . addslashes($file['name']). "'>" .htmlentities($file['name']). "</a></td>"; print "<tr><td class='n'><a href='" . addslashes($file['name']). "'>" .htmlentities($file['name']). "</a></td>";
print "<td class='m'>" . date('Y-M-d H:m:s', $file['modtime']) . "</td>"; print "<td class='m'>" . date('Y-M-d H:i:s', $file['modtime']) . "</td>";
print "<td class='s'>" . format_bytes($file['size'],2) . "&nbsp;</td>"; print "<td class='s'>" . format_bytes($file['size'],2) . "&nbsp;</td>";
print "<td class='t'>" . $file['file_type'] . "</td></tr>"; print "<td class='t'>" . $file['file_type'] . "</td></tr>";
} }

View file

@ -82,3 +82,11 @@
regexp: '^LoadModule substitute_module modules/mod_substitute.so' regexp: '^LoadModule substitute_module modules/mod_substitute.so'
line: '#LoadModule substitute_module modules/mod_substitute.so' line: '#LoadModule substitute_module modules/mod_substitute.so'
- name: Keep httpd master running when child is OOM killed, rhbz#1947475
ini_file:
path: /usr/lib/systemd/system/httpd.service
section: Service
option: OOMPolicy
value: continue
backup: yes
notify: restart apache

View file

@ -4,6 +4,7 @@ Alias "/db_dumps/" "/var/www/html/db_dumps/"
WSGIDaemonProcess 127.0.0.1 user=copr-fe group=copr-fe processes=4 threads=5 display-name=other maximum-requests=8000 restart-interval=300 graceful-timeout=20 WSGIDaemonProcess 127.0.0.1 user=copr-fe group=copr-fe processes=4 threads=5 display-name=other maximum-requests=8000 restart-interval=300 graceful-timeout=20
WSGIDaemonProcess api user=copr-fe group=copr-fe processes=2 threads=15 display-name=api maximum-requests=8000 graceful-timeout=20 WSGIDaemonProcess api user=copr-fe group=copr-fe processes=2 threads=15 display-name=api maximum-requests=8000 graceful-timeout=20
WSGIDaemonProcess api-memory-leak user=copr-fe group=copr-fe processes=2 threads=1 display-name=api-memory-leak maximum-requests=10 graceful-timeout=20
WSGIDaemonProcess backend user=copr-fe group=copr-fe processes=2 threads=15 display-name=backend maximum-requests=8000 graceful-timeout=20 WSGIDaemonProcess backend user=copr-fe group=copr-fe processes=2 threads=15 display-name=backend maximum-requests=8000 graceful-timeout=20
WSGIDaemonProcess stats user=copr-fe group=copr-fe processes=2 threads=15 display-name=stats maximum-requests=8000 graceful-timeout=20 WSGIDaemonProcess stats user=copr-fe group=copr-fe processes=2 threads=15 display-name=stats maximum-requests=8000 graceful-timeout=20
WSGIDaemonProcess tmp user=copr-fe group=copr-fe processes=2 threads=15 display-name=tmp maximum-requests=8000 graceful-timeout=20 WSGIDaemonProcess tmp user=copr-fe group=copr-fe processes=2 threads=15 display-name=tmp maximum-requests=8000 graceful-timeout=20
@ -71,6 +72,9 @@ WSGIApplicationGroup %{GLOBAL}
<LocationMatch "^/api.*upload.*"> <LocationMatch "^/api.*upload.*">
WSGIProcessGroup upload WSGIProcessGroup upload
</LocationMatch> </LocationMatch>
<LocationMatch "^/api_3/package/list.*">
WSGIProcessGroup api-memory-leak
</LocationMatch>
<LocationMatch "^/coprs.*new_build_upload.*"> <LocationMatch "^/coprs.*new_build_upload.*">
WSGIProcessGroup upload WSGIProcessGroup upload
</LocationMatch> </LocationMatch>

View file

@ -37,9 +37,11 @@ options {
pid-file "/var/run/named/named.pid"; pid-file "/var/run/named/named.pid";
statistics-file "/var/log/named.stats"; statistics-file "/var/log/named.stats";
provide-ixfr no; provide-ixfr no;
tcp-clients 1000;
version "cowbell++"; version "cowbell++";
listen-on port 53 {
listen-on port 53 {
any; any;
}; };
listen-on-v6 port 53 { listen-on-v6 port 53 {

View file

@ -255,6 +255,7 @@ rbergeron: rbergero
jwf: jflory7 jwf: jflory7
axk4545: abkahrs axk4545: abkahrs
bexelbie: bex bexelbie: bex
bt0dotninja: bt0
# Mirror admin alias # Mirror admin alias
mirror-admin: mirror-admin@lists.fedoraproject.org mirror-admin: mirror-admin@lists.fedoraproject.org

View file

@ -255,6 +255,7 @@ rbergeron: rbergero
jwf: jflory7 jwf: jflory7
axk4545: abkahrs axk4545: abkahrs
bexelbie: bex bexelbie: bex
bt0dotninja: bt0
# Mirror admin alias # Mirror admin alias
mirror-admin: mirror-admin@lists.fedoraproject.org mirror-admin: mirror-admin@lists.fedoraproject.org

View file

@ -2,6 +2,7 @@
import os import os
import sys import sys
import tempfile import tempfile
import subprocess
from fasjson_client import Client, errors from fasjson_client import Client, errors
@ -17,7 +18,7 @@ def gen_all_aliases():
client = Client(url=fasjson_url) client = Client(url=fasjson_url)
try: try:
users = client.list_users().result users = client.list_group_members(groupname="fedora-contributor").result
groups = client.list_groups().result groups = client.list_groups().result
temporary_file = tempfile.NamedTemporaryFile( temporary_file = tempfile.NamedTemporaryFile(
"w+", delete=False, dir=os.getcwd() "w+", delete=False, dir=os.getcwd()
@ -29,26 +30,24 @@ def gen_all_aliases():
temp.write(line) temp.write(line)
for user in users: for user in users:
username = user['username'] username = user['username']
email = user['emails'][0] userinfo = client.get_user(username=username).result
email = userinfo['emails'][0]
temp.write(f'{username}: {email} \n') temp.write(f'{username}: {email} \n')
for group in groups: for group in groups:
groupname = group['groupname'] groupname = group['groupname']
# even though there are no admins of groups anymore
# we should probably leave this here and just
# link to the sponsors list
temp.write(
f'{groupname}-administrators: {groupname}-sponsors \n'
)
sponsor_list = ','.join( sponsor_list = ','.join(
sponsor['username'] sponsor['username']
for sponsor in client.list_group_sponsors( for sponsor in client.list_group_sponsors(
groupname=groupname).result groupname=groupname).result
) )
temp.write(f"{groupname}-sponsors: {sponsor_list} \n") if sponsor_list:
temp.write(
f'{groupname}-administrators: {groupname}-sponsors \n'
)
temp.write(f"{groupname}-sponsors: {sponsor_list} \n")
member_list = ','.join( member_list = ','.join(
member['username'] member['username']
@ -56,7 +55,9 @@ def gen_all_aliases():
groupname=groupname).result groupname=groupname).result
) )
temp.write(f"{groupname}-members: {member_list} \n") if member_list:
temp.write(f"{groupname}-members: {member_list} \n")
rename(temporary_file.name, aliases_file) rename(temporary_file.name, aliases_file)
except errors.APIError as e: except errors.APIError as e:
print(f"Something went wrong querying the fasjson API. {e}", file=sys.stderr) print(f"Something went wrong querying the fasjson API. {e}", file=sys.stderr)
@ -114,16 +115,18 @@ def main():
# Use the system's keytab for authentication # Use the system's keytab for authentication
os.environ["KRB5_CLIENT_KTNAME"] = "/etc/krb5.keytab" os.environ["KRB5_CLIENT_KTNAME"] = "/etc/krb5.keytab"
try: if not args:
if not args: gen_all_aliases()
gen_all_aliases() # call newaliases script so postfix gets updated
elif len(args) == 2 and args[0] == "update": subprocess.check_call(['/usr/bin/newaliases'])
update_user(args[1]) elif len(args) == 2 and args[0] == "update":
else: update_user(args[1])
print(f"Usage: {sys.argv[0]} [update <username>]", file=sys.stderr) # call newaliases script so postfix gets updated
raise RuntimeError() subprocess.check_call(['/usr/bin/newaliases'])
except Exception: else:
sys.exit(1) print(f"Usage: {sys.argv[0]} [update <username>]", file=sys.stderr)
exit(1)
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View file

@ -5,6 +5,7 @@
# - proxyurl # - proxyurl
# - rewrite # - rewrite
# - keephost # - keephost
# - proxyopts
- name: Set OpenShift information if not preconfigured - name: Set OpenShift information if not preconfigured
set_fact: set_fact:

View file

@ -64,6 +64,6 @@ RewriteRule .* "balancer://{{ balancer_name }}-websocket%{REQUEST_URI}" [P]
ProxyPass {{ localpath }} "balancer://{{balancer_name}}{{remotepath}}" ProxyPass {{ localpath }} "balancer://{{balancer_name}}{{remotepath}}"
ProxyPassReverse {{ localpath }} "balancer://{{balancer_name}}{{remotepath}}" ProxyPassReverse {{ localpath }} "balancer://{{balancer_name}}{{remotepath}}"
{% else %} {% else %}
ProxyPass {{ localpath }} {{ proxyurl }}{{remotepath}} ProxyPass {{ localpath }} {{ proxyurl }}{{remotepath}} {{ proxyopts }}
ProxyPassReverse {{ localpath }} {{ proxyurl }}{{remotepath}} ProxyPassReverse {{ localpath }} {{ proxyurl }}{{remotepath}}
{% endif %} {% endif %}

View file

@ -7,3 +7,4 @@ header_scheme: false
keephost: false keephost: false
targettype: plain targettype: plain
http_not_https_yes_this_is_insecure_and_i_feel_bad: false http_not_https_yes_this_is_insecure_and_i_feel_bad: false
proxyopts: ""

View file

@ -6,7 +6,11 @@
ServerAdmin {{ server_admin }} ServerAdmin {{ server_admin }}
TraceEnable Off TraceEnable Off
{% if x_forward %}
# RequestHeader unset X-Forwarded-For
{% else %}
RequestHeader unset X-Forwarded-For RequestHeader unset X-Forwarded-For
{% endif %}
{% if gzip %} {% if gzip %}
SetOutputFilter DEFLATE SetOutputFilter DEFLATE
@ -46,7 +50,11 @@
{% endif %} {% endif %}
ServerAdmin {{ server_admin }} ServerAdmin {{ server_admin }}
{% if x_forward %}
# RequestHeader unset X-Forwarded-For
{% else %}
RequestHeader unset X-Forwarded-For RequestHeader unset X-Forwarded-For
{% endif %}
{% if ansible_distribution == 'Fedora' and use_h2 %} {% if ansible_distribution == 'Fedora' and use_h2 %}
Protocols h2 http/1.1 Protocols h2 http/1.1

View file

@ -0,0 +1,6 @@
## This file contains users who are in ipa to stop people from
## creating restricted accounts but we want to make sure the id in
## /etc/passwd and /etc/group are used.
[nss]
filter_users = root,bin,daemon,adm,lp,sync,shutdown,halt,mail,operator,games,ftp,nobody,avahi-autoipd,dbus,polkitd,rpc,tss,ntp,rpcuser,nfsnobody,postfix,sshd,nagios,nrpe,openvpn,,chrony,sssd,named,mock
filter_groups = root,bin,daemon,sys,adm,tty,disk,lp,mem,kmem,wheel,cdrom,mail,man,dialout,floppy,games,tape,video,ftp,lock,audio,nobody,users,utmp,utempter,avahi-autoipd,ssh_keys,systemd-journal,dbus,rpc,tss,ntp,dip,rpcuser,nfsnobody,postdrop,postfix,sshd,screen,nagios,nrpe,openvpn,input,systemd-bus-proxy,systemd-network,cgred,chrony,printadmin,sssd,named,mock

View file

@ -79,3 +79,14 @@
notify: notify:
- restart sssd - restart sssd
- clean sss caches - clean sss caches
when: env == "production"
- name: Ensure that nss knows to skip certain users
copy: src=fedora-nss-ignore.conf.staging dest=/etc/sssd/conf.d/fedora-nss-ignore.conf mode=600 owner=root group=root
tags:
- ipa/client
- config
notify:
- restart sssd
- clean sss caches
when: env == "staging"

View file

@ -40,6 +40,7 @@
# "host_group_1": { # "host_group_1": {
# "shell_groups": [...], # "shell_groups": [...],
# "sudo_groups": [...], # "sudo_groups": [...],
# "sudo_nopasswd_groups": [...],
# "hosts": { # <-- This could be a list with Ansible >= 2.10 # "hosts": { # <-- This could be a list with Ansible >= 2.10
# "host_1": true, # "host_1": true,
# ..., # ...,
@ -85,6 +86,8 @@
(ipa_hosts_combined_shell_groups_dict[item] | length > 0) (ipa_hosts_combined_shell_groups_dict[item] | length > 0)
| ternary(ipa_hosts_combined_shell_groups_dict[item], omit), | ternary(ipa_hosts_combined_shell_groups_dict[item], omit),
'sudo_groups': hostvars[item]['ipa_client_sudo_groups'] | default(omit), 'sudo_groups': hostvars[item]['ipa_client_sudo_groups'] | default(omit),
'sudo_nopasswd_groups':
hostvars[item]['ipa_client_sudo_nopasswd_groups'] | default(omit),
'hosts': {item: true}, 'hosts': {item: true},
} }
} }
@ -99,6 +102,8 @@
hostvars[item]['ipa_server']: { hostvars[item]['ipa_server']: {
'groups': ipa_hosts_combined_shell_groups_dict[item] | union( 'groups': ipa_hosts_combined_shell_groups_dict[item] | union(
hostvars[item]['ipa_client_sudo_groups'] | default([]) hostvars[item]['ipa_client_sudo_groups'] | default([])
) | union(
hostvars[item]['ipa_client_sudo_nopasswd_groups'] | default([])
), ),
'hosts': {item: True}, 'hosts': {item: True},
} }

View file

@ -34,3 +34,20 @@
notify: clean sss caches notify: clean sss caches
loop: "{{ ipa_server_host_groups }}" loop: "{{ ipa_server_host_groups }}"
when: ipa_server_host_groups is defined and ipa_server_host_groups_dict[item[0]][item[1]]['sudo_groups'] is defined when: ipa_server_host_groups is defined and ipa_server_host_groups_dict[item[0]][item[1]]['sudo_groups'] is defined
- name: Give certain groups passwordless sudo access to anything per host group
delegate_to: "{{ item[0] }}"
ipasudorule:
name: "hostgroup/{{ item[1] }}/nopasswd"
description: "Grant passwordless sudo access to anything on host group {{ item[1] }}"
ipaadmin_password: "{{ ipa_server_admin_passwords[item[0]] }}"
state: present
group: "{{ ipa_server_host_groups_dict[item[0]][item[1]]['sudo_nopasswd_groups'] }}"
hostgroup: "{{ item[1] }}"
cmdcategory: "all"
runasusercategory: "all"
runasgroupcategory: "all"
options: "!authenticate"
notify: clean sss caches
loop: "{{ ipa_server_host_groups }}"
when: ipa_server_host_groups is defined and ipa_server_host_groups_dict[item[0]][item[1]]['sudo_nopasswd_groups'] is defined

View file

@ -629,3 +629,20 @@
copy: copy:
src: data-only-backup src: data-only-backup
dest: "/etc/cron.d/data-only-backup" dest: "/etc/cron.d/data-only-backup"
- name: Ensure python dep is present
pip:
name: python-freeipa
tags:
- ipa/server
- otp_script
- name: Copy file for checking if sysadmins have otp set
template:
src: check_sysadmin_otp.py.j2
dest: /root/check_sysadmin_otp.py
owner: root
group: root
tags:
- ipa/server
- otp_script

View file

@ -0,0 +1,80 @@
import argparse
import json
from python_freeipa import ClientMeta
def login(args):
client = ClientMeta(host=args.server_address, verify_ssl=args.cert_path)
client.login(args.username, args.password)
return client
def get_sysadmins(client):
groups = client.group_find('sysadmin-')
sysadmins = []
print('Gethering all members from sysadmin-* groups')
for group in groups['result']:
try:
sysadmins = sysadmins + list(set(group['member_user']) - set(sysadmins))
except KeyError:
print('No members of group: ' + group['cn'][0])
return sysadmins
def checkotp_tokens(client):
sysadmins = get_sysadmins(client)
print("There is " + str(len(sysadmins)) + " sysadmins in the system")
tokenless = []
print('Checking which users have an otp token assigned')
for sysadmin in sysadmins:
is_token = client.otptoken_find(o_ipatokenowner=sysadmin)
if len(is_token['result']) == 0:
tokenless.append(sysadmin)
print("There are " + str(len(tokenless)) + " sysadmins without otptokens")
return tokenless
def get_email(client, users):
print('Gathering emails of the users with no tokens')
user_details = []
for user in users:
email = client.user_show(user)['result']['mail'][0]
user_details.append({'user': user, 'email': email})
return user_details
def parse_args():
parser = argparse.ArgumentParser(description="Check for sysadmin users with no otp token set, admin credentials are required to run script")
parser.add_argument("-u", "--username", default="admin", help="ipa user to use")
parser.add_argument("-c", "--cert-path", default="/etc/ipa/ca.crt", help="location of ipa cert")
parser.add_argument("-s", "--server-address", default="ipa01{{ env_suffix }}.iad2.fedoraproject.org", help="server to run against")
parser.add_argument("-p", "--password", help="ipa user password", required=True)
args = parser.parse_args()
return args
def do_it(client):
tokenless_sysadmins = checkotp_tokens(client)
user_details = get_email(client, tokenless_sysadmins)
print("Details are in the file tokenless_users.json")
with open('tokenless_users.json', 'w') as outfile:
json.dump(user_details, outfile)
if __name__ == "__main__":
args = parse_args()
client = login(args)
do_it(client)

View file

@ -62,7 +62,7 @@
tags: tags:
- koji_builder - koji_builder
- name: add pkgs - name: add pkgs (production)
package: package:
state: present state: present
name: name:
@ -93,9 +93,42 @@
- imagefactory-plugins-RHEVM - imagefactory-plugins-RHEVM
- pykickstart - pykickstart
- nosync - nosync
when: env == "production"
tags: tags:
- koji_builder - koji_builder
- name: add pkgs (staging)
package:
state: present
name:
- koji-builder
- koji-builder-plugins
- python3-koji
- koji-containerbuild-builder
- strace
- mock
- kernel-firmware
- kernel-modules
- rsyslog
- audit
- pycdio
- python3-kickstart
- libvirt-client
- oz
- imagefactory
- imagefactory-plugins-TinMan
- imagefactory-plugins-Docker
- imagefactory-plugins-GCE
- imagefactory-plugins-vSphere
- imagefactory-plugins-ovfcommon
- imagefactory-plugins
- imagefactory-plugins-OVA
- imagefactory-plugins-RHEVM
- pykickstart
- nosync
when: env == "staging"
tags:
- koji_builder
# #
# rpmautospec plugin # rpmautospec plugin
# #

View file

@ -1,4 +1,5 @@
[global] [global]
audit_enabled = 0
branding = plain branding = plain
base_url = https://{{ external_hostname }} base_url = https://{{ external_hostname }}
download_domains = fedoraproject.org download_domains = fedoraproject.org
@ -13,12 +14,26 @@ topic_prefix = {{ openqa_amqp_publisher_prefix }}
url = {{ openqa_amqp_publisher_url }} url = {{ openqa_amqp_publisher_url }}
exchange = {{ openqa_amqp_publisher_exchange }} exchange = {{ openqa_amqp_publisher_exchange }}
[audit/storage_duration]
startup = 7
jobgroup = 7
jobtemplate = 7
table = 7
iso = 7
user = 7
asset = 7
needle = 7
other = 7
[auth] [auth]
method=OpenID method=OpenID
[logging] [logging]
level=info level=info
[misc_limits]
asset_cleanup_max_free_percentage = 20
[openid] [openid]
provider = https://id.fedoraproject.org/ provider = https://id.fedoraproject.org/
httpsonly = 1 httpsonly = 1

View file

@ -14,7 +14,7 @@ spec:
git: git:
uri: https://pagure.io/fedocal.git uri: https://pagure.io/fedocal.git
{% if env == 'staging' %} {% if env == 'staging' %}
ref: "debug" ref: "staging"
{% else %} {% else %}
ref: "production" ref: "production"
{% endif %} {% endif %}

View file

@ -25,7 +25,7 @@ SESSION_COOKIE_SECURE = True
FREEIPA_ADMIN_USER = "noggin" FREEIPA_ADMIN_USER = "noggin"
# How many minutes before a password reset request expires # How many minutes before a password reset request expires
PASSWORD_RESET_EXPIRATION = 10 PASSWORD_RESET_EXPIRATION = 30
# Email # Email
MAIL_FROM = "Fedora Account System <fas@fedoraproject.org>" MAIL_FROM = "Fedora Account System <fas@fedoraproject.org>"

View file

@ -77,18 +77,20 @@ spec:
{% else %} {% else %}
value: "bastion.iad2.fedoraproject.org;;;watchdog@packager-dashboard.fedoraproject.org;" value: "bastion.iad2.fedoraproject.org;;;watchdog@packager-dashboard.fedoraproject.org;"
{% endif %} {% endif %}
- name: BZ_API_KEY
value: "{{ oraculum_bz_api_key }}"
volumeMounts: volumeMounts:
- name: oraculum-secret-volume - name: oraculum-secret-volume
mountPath: /opt/app-root/secret/ mountPath: /opt/app-root/secret/
readOnly: true readOnly: true
readinessProbe: readinessProbe:
timeoutSeconds: 1 timeoutSeconds: 5
initialDelaySeconds: 5 initialDelaySeconds: 5
httpGet: httpGet:
path: / path: /
port: 8080 port: 8080
livenessProbe: livenessProbe:
timeoutSeconds: 1 timeoutSeconds: 15
initialDelaySeconds: 30 initialDelaySeconds: 30
httpGet: httpGet:
path: / path: /
@ -176,6 +178,8 @@ spec:
{% else %} {% else %}
value: "bastion.iad2.fedoraproject.org;;;watchdog@packager-dashboard.fedoraproject.org;" value: "bastion.iad2.fedoraproject.org;;;watchdog@packager-dashboard.fedoraproject.org;"
{% endif %} {% endif %}
- name: BZ_API_KEY
value: "{{ oraculum_bz_api_key }}"
volumeMounts: volumeMounts:
- name: oraculum-secret-volume - name: oraculum-secret-volume
mountPath: /opt/app-root/secret/ mountPath: /opt/app-root/secret/
@ -259,6 +263,8 @@ spec:
{% else %} {% else %}
value: "bastion.iad2.fedoraproject.org;;;watchdog@packager-dashboard.fedoraproject.org;" value: "bastion.iad2.fedoraproject.org;;;watchdog@packager-dashboard.fedoraproject.org;"
{% endif %} {% endif %}
- name: BZ_API_KEY
value: "{{ oraculum_bz_api_key }}"
volumeMounts: volumeMounts:
- name: oraculum-secret-volume - name: oraculum-secret-volume
mountPath: /opt/app-root/secret/ mountPath: /opt/app-root/secret/
@ -344,6 +350,8 @@ spec:
{% else %} {% else %}
value: "bastion.iad2.fedoraproject.org;;;watchdog@packager-dashboard.fedoraproject.org;" value: "bastion.iad2.fedoraproject.org;;;watchdog@packager-dashboard.fedoraproject.org;"
{% endif %} {% endif %}
- name: BZ_API_KEY
value: "{{ oraculum_bz_api_key }}"
volumeMounts: volumeMounts:
- name: oraculum-secret-volume - name: oraculum-secret-volume
mountPath: /opt/app-root/secret/ mountPath: /opt/app-root/secret/

View file

@ -44,11 +44,7 @@ spec:
type: Git type: Git
git: git:
uri: https://pagure.io/taskotron/resultsdb.git uri: https://pagure.io/taskotron/resultsdb.git
{% if env == 'staging' %} ref: "develop"
ref: "openshift_WIP"
{% else %}
ref: "openshift_WIP"
{% endif %}
strategy: strategy:
type: Source type: Source
sourceStrategy: sourceStrategy:

View file

@ -91,7 +91,7 @@ dist_git_token = "private random string to change"
email_overrides_file = "/etc/fedora-messaging/email_overrides.toml" email_overrides_file = "/etc/fedora-messaging/email_overrides.toml"
# List of accounts we do not want to report about # List of accounts we do not want to report about
ignorable_accounts = ["packagerbot", "zuul"] ignorable_accounts = ["packagerbot", "zuul", "cockpit"]
# Temp folder to use for toddlers temp files # Temp folder to use for toddlers temp files
temp_folder = "/var/tmp" temp_folder = "/var/tmp"

View file

@ -9,30 +9,8 @@
tags: tags:
- openvpn - openvpn
- packages - packages
when: ansible_distribution_major_version|int < 8 and ansible_distribution == 'RedHat'
- name: Install needed package (dnf) - name: Install ca for client
package:
state: present
name:
- openvpn
tags:
- openvpn
- packages
when: ansible_distribution_major_version|int > 7 and ansible_cmdline.ostree is not defined
- name: Install certificate and key (rhel6)
copy: src={{ private }}/files/vpn/pki/ca.crt
dest=/etc/openvpn/ca.crt
owner=root group=root mode=0600
tags:
- install
- openvpn
#notify:
#- restart openvpn (RHEL6)
when: ansible_distribution_major_version|int == 6 and ansible_distribution == 'RedHat'
- name: Install certificate and key (rhel7+) for client
copy: src={{ private }}/files/vpn/pki/ca.crt copy: src={{ private }}/files/vpn/pki/ca.crt
dest=/etc/openvpn/client/ca.crt dest=/etc/openvpn/client/ca.crt
owner=root group=root mode=0600 owner=root group=root mode=0600
@ -41,20 +19,8 @@
- openvpn - openvpn
#notify: #notify:
#- restart openvpn (RHEL7+) #- restart openvpn (RHEL7+)
when: ( ansible_distribution_major_version|int >= 7 and ansible_distribution == 'RedHat' ) and ansible_cmdline.ostree is not defined
- name: Install certificate and key (Fedora) for client - name: Install ca for server
copy: src={{ private }}/files/vpn/pki/ca.crt
dest=/etc/openvpn/client/ca.crt
owner=root group=root mode=0600
tags:
- install
- openvpn
#notify:
#- restart openvpn (Fedora)
when: ( ansible_distribution_major_version|int >= 29 and ansible_distribution == 'Fedora' ) and ansible_cmdline.ostree is not defined
- name: Install certificate and key (fedora) for server
copy: src={{ private }}/files/vpn/pki/ca.crt copy: src={{ private }}/files/vpn/pki/ca.crt
dest=/etc/openvpn/server/ca.crt dest=/etc/openvpn/server/ca.crt
owner=root group=root mode=0600 owner=root group=root mode=0600
@ -63,18 +29,6 @@
- openvpn - openvpn
#notify: #notify:
#- restart openvpn (Fedora) #- restart openvpn (Fedora)
when: ( ansible_distribution_major_version|int >= 29 and ansible_distribution == 'Fedora' ) and ansible_cmdline.ostree is not defined
- name: Install certificate and key (rhel7+) for server
copy: src={{ private }}/files/vpn/pki/ca.crt
dest=/etc/openvpn/server/ca.crt
owner=root group=root mode=0600
tags:
- install
- openvpn
#notify:
#- restart openvpn (RHEL7+)
when: ( ansible_distribution_major_version|int >= 7 and ansible_distribution == 'RedHat' ) and ansible_cmdline.ostree is not defined
- name: Install certificate and key (rhel7 or fedora) for server - name: Install certificate and key (rhel7 or fedora) for server
copy: src={{ private }}/files/vpn/pki/ca.crt copy: src={{ private }}/files/vpn/pki/ca.crt

View file

@ -9,29 +9,8 @@
tags: tags:
- packages - packages
- openvpn - openvpn
when: ansible_distribution_major_version|int < 8 and ansible_distribution == 'RedHat'
- name: Install needed packages - name: Install main config file
package:
state: present
name:
- openvpn
tags:
- packages
- openvpn
when: ansible_distribution_major_version|int > 7 and ansible_distribution == 'RedHat' and ansible_cmdline.ostree is not defined
- name: Install needed packages
package:
state: present
name:
- openvpn
tags:
- packages
- openvpn
when: ansible_distribution_major_version|int > 29 and ansible_distribution == 'Fedora' and ansible_cmdline.ostree is not defined
- name: Install main config file (rhel7 and fedora)
template: src=client.conf template: src=client.conf
dest=/etc/openvpn/client/openvpn.conf dest=/etc/openvpn/client/openvpn.conf
owner=root group=root mode=0644 owner=root group=root mode=0644
@ -41,7 +20,6 @@
# notify: # notify:
# - restart openvpn (Fedora) # - restart openvpn (Fedora)
# - restart openvpn (RHEL6+) # - restart openvpn (RHEL6+)
when: (ansible_distribution == 'RedHat' or ansible_distribution == 'Fedora') and ansible_cmdline.ostree is not defined
- name: Install configuration files (rhel7 and fedora) - name: Install configuration files (rhel7 and fedora)
copy: src={{ item.file }} copy: src={{ item.file }}
@ -60,46 +38,9 @@
# notify: # notify:
# - restart openvpn (Fedora) # - restart openvpn (Fedora)
# - restart openvpn (RHEL7) # - restart openvpn (RHEL7)
when: (ansible_distribution_major_version|int >= 7 and ansible_distribution == 'RedHat') or (ansible_distribution_major_version|int >= 29 and ansible_distribution == 'Fedora') and ansible_cmdline.ostree is not defined
- name: Install configuration files (rhel6)
copy: src={{ item.file }}
dest={{ item.dest }}
owner=root group=root mode={{ item.mode }}
with_items:
- { file: client.conf,
dest: /etc/openvpn/openvpn.conf,
mode: '0644' }
- { file: "{{ private }}/files/vpn/pki/issued/{{ inventory_hostname }}.crt",
dest: "/etc/openvpn/client.crt",
mode: '0600' }
- { file: "{{ private }}/files/vpn/pki/private/{{ inventory_hostname }}.key",
dest: "/etc/openvpn/client.key",
mode: '0600' }
tags:
- install
- openvpn
# notify:
# - restart openvpn (RHEL6)
when: (ansible_distribution_major_version|int == 6 and ansible_distribution == 'RedHat') and ansible_cmdline.ostree is not defined
- name: enable openvpn service for rhel 6
service: name=openvpn state=started enabled=true
when: ansible_distribution_major_version|int == 6 and ansible_distribution == 'RedHat'
tags:
- service
- openvpn
- name: Make sure old openvpn is not running in rhel 7
service: name=openvpn@openvpn state=stopped enabled=false
when: ansible_distribution_major_version|int == 7 and ansible_distribution == 'RedHat'
tags:
- service
- openvpn
- name: Make sure openvpn is running in rhel 7+ - name: Make sure openvpn is running in rhel 7+
service: name=openvpn-client@openvpn state=started enabled=true service: name=openvpn-client@openvpn state=started enabled=true
when: ansible_distribution_major_version|int >= 7 and ansible_distribution == 'RedHat'
tags: tags:
- service - service
- openvpn - openvpn

View file

@ -0,0 +1,2 @@
# ifconfig-push actualIP PtPIP
ifconfig-push 192.168.100.21 192.168.100.21

View file

@ -0,0 +1,2 @@
# ifconfig-push actualIP PtPIP
ifconfig-push 192.168.100.18 192.168.100.18

View file

@ -0,0 +1,2 @@
# ifconfig-push actualIP PtPIP
ifconfig-push 192.168.100.19 192.168.100.19

View file

@ -0,0 +1,2 @@
# ifconfig-push actualIP PtPIP
ifconfig-push 192.168.100.14 192.168.100.14

View file

@ -0,0 +1,2 @@
# ifconfig-push actualIP PtPIP
ifconfig-push 192.168.100.15 192.168.100.15

View file

@ -0,0 +1,2 @@
# ifconfig-push actualIP PtPIP
ifconfig-push 192.168.100.16 192.168.100.16

View file

@ -0,0 +1,2 @@
# ifconfig-push actualIP PtPIP
ifconfig-push 192.168.100.20 192.168.100.20

View file

@ -0,0 +1,2 @@
# ifconfig-push actualIP PtPIP
ifconfig-push 192.168.100.17 192.168.100.17

View file

@ -0,0 +1,2 @@
# ifconfig-push actualIP PtPIP
ifconfig-push 192.168.100.22 192.168.100.22

View file

@ -0,0 +1,2 @@
# ifconfig-push actualIP PtPIP
ifconfig-push 192.168.100.23 192.168.100.23

View file

@ -0,0 +1,2 @@
# ifconfig-push actualIP PtPIP
ifconfig-push 192.168.100.24 192.168.100.24

View file

@ -0,0 +1,2 @@
# ifconfig-push actualIP PtPIP
ifconfig-push 192.168.100.25 192.168.100.25

View file

@ -178,8 +178,14 @@ for hdir in homedirs:
continue continue
user["name"] = pwentry.pw_gecos user["name"] = pwentry.pw_gecos
user["has_public_html"] = (hdir / "public_html").is_dir() try:
user["has_public_git"] = (hdir / "public_git").is_dir() user["has_public_html"] = (hdir / "public_html").is_dir()
except PermissionError:
user["has_public_html"] = False
try:
user["has_public_git"] = (hdir / "public_git").is_dir()
except PermissionError:
user["has_public_git"] = False
user["email_hash"] = hashlib.md5( user["email_hash"] = hashlib.md5(
f"{user['name'].lower()}@fedoraproject.org".encode("utf-8") f"{user['name'].lower()}@fedoraproject.org".encode("utf-8")
).hexdigest() ).hexdigest()
@ -201,11 +207,16 @@ out_file_grp = grp.getgrnam("web").gr_gid
with open(out_file, "w", encoding="utf-8") as handle: with open(out_file, "w", encoding="utf-8") as handle:
handle.write(page_output) handle.write(page_output)
# keep current owner uid # The code below was present originally, however the cron job is ran under the
st = out_file.stat() # `apache` user so it is not clear what this was meant to do.
out_file_uid = st.st_uid # This is being kept here for convenience in case we need to re-activate this
# code, down the line this should just be removed.
# keep current owner uid
#st = out_file.stat()
#out_file_uid = st.st_uid
#
# give write permissions to group # give write permissions to group
out_file.chmod(st.st_mode | stat.S_IWGRP) #out_file.chmod(st.st_mode | stat.S_IWGRP)
# chown out file to group # chown out file to group
os.chown(out_file, out_file_uid, out_file_grp) #os.chown(out_file, out_file_uid, out_file_grp)

View file

@ -214,6 +214,12 @@ repo_dict = {
"31" : "f31", "31" : "f31",
"32" : "f32", "32" : "f32",
"33" : "f33", "33" : "f33",
"34" : "f34",
"35" : "f35",
"36" : "f36",
"37" : "f37",
"38" : "f38",
"39" : "f39",
"6.89" : "f07", "6.89" : "f07",
"6.90" : "f07", "6.90" : "f07",
"6.91" : "f07", "6.91" : "f07",
@ -320,6 +326,12 @@ repo_dict = {
'f31' : 'f31', 'f31' : 'f31',
'f32' : 'f32', 'f32' : 'f32',
'f33' : 'f33', 'f33' : 'f33',
'f34' : 'f34',
'f35' : 'f35',
'f36' : 'f36',
'f37' : 'f37',
'f38' : 'f38',
'f39' : 'f39',
'fmodular27' : 'modular_f27', 'fmodular27' : 'modular_f27',
'fmodular28' : 'modular_f28', 'fmodular28' : 'modular_f28',
'fmodular29' : 'modular_f29', 'fmodular29' : 'modular_f29',
@ -334,6 +346,12 @@ repo_dict = {
'modularf31' : 'modular_f31', 'modularf31' : 'modular_f31',
'modularf32' : 'modular_f32', 'modularf32' : 'modular_f32',
'modularf33' : 'modular_f33', 'modularf33' : 'modular_f33',
'modularf34' : 'modular_f34',
'modularf35' : 'modular_f35',
'modularf36' : 'modular_f36',
'modularf37' : 'modular_f37',
'modularf38' : 'modular_f38',
'modularf39' : 'modular_f39',
'rhel4' : 'rhel4', 'rhel4' : 'rhel4',
'rhel5' : 'rhel5', 'rhel5' : 'rhel5',
'rhel6' : 'rhel6', 'rhel6' : 'rhel6',

View file

@ -7,6 +7,7 @@ BEGIN{
epel6=0; epel6=0;
epel7=0; epel7=0;
epel8=0; epel8=0;
epel9=0;
f03=0; f03=0;
f04=0; f04=0;
f05=0; f05=0;
@ -38,6 +39,12 @@ BEGIN{
f31=0; f31=0;
f32=0; f32=0;
f33=0; f33=0;
f34=0;
f35=0;
f36=0;
f37=0;
f38=0;
f39=0;
rawhide=0; rawhide=0;
rawhide_modular=0; rawhide_modular=0;
modular_f27=0; modular_f27=0;
@ -47,6 +54,12 @@ BEGIN{
modular_f31=0; modular_f31=0;
modular_f32=0; modular_f32=0;
modular_f33=0; modular_f33=0;
modular_f34=0;
modular_f35=0;
modular_f36=0;
modular_f37=0;
modular_f38=0;
modular_f39=0;
modular=0; modular=0;
unknown_release = 0; unknown_release = 0;
# arch # arch
@ -73,7 +86,7 @@ BEGIN{
unknown_arch = 0; unknown_arch = 0;
centos = 0; centos = 0;
rhel = 0; rhel = 0;
print olddate ",02-epel4,03-epel5,04-epel6,05-epel7,06-f03,07-f04,08-f05,09-f06,10-f07,11-f08,12-f09,13-f10,14-f11,15-f12,16-f13,17-f14,18-f15,19-f16,20-f17,21-f18,22-f19,23-f20,24-f21,25-f22,26-f23,27-f24,28-f25,29-f26,30-f27,31-f28,32-f29,33-rawhide,34-unk_rel,35-epel,36-fedora,37-alpha,38-arm,39-arm64,40-ia64,41-mips,42-ppc,43-s390,44-sparc,45-tilegx,46-x86_32,47-x86_64,48-x86_32_e,49-x86_32_f,50-x86_64_e,51-x86_64_f,52-ppc_e,53-ppc_f,54-unk_arc,55-centos,56-rhel,57-ppc64,58-ppc64le,59-modular,60-modular_rawhide,61-modular_f27,62-modular_f28,63-modular_f29,64-modular_f30,65-f30,66-f31,67-f32,68-f33,69-modular_f31,70-modular_f32,71-modular_f33,72-epel8"; print olddate ",02-epel4,03-epel5,04-epel6,05-epel7,06-f03,07-f04,08-f05,09-f06,10-f07,11-f08,12-f09,13-f10,14-f11,15-f12,16-f13,17-f14,18-f15,19-f16,20-f17,21-f18,22-f19,23-f20,24-f21,25-f22,26-f23,27-f24,28-f25,29-f26,30-f27,31-f28,32-f29,33-rawhide,34-unk_rel,35-epel,36-fedora,37-alpha,38-arm,39-arm64,40-ia64,41-mips,42-ppc,43-s390,44-sparc,45-tilegx,46-x86_32,47-x86_64,48-x86_32_e,49-x86_32_f,50-x86_64_e,51-x86_64_f,52-ppc_e,53-ppc_f,54-unk_arc,55-centos,56-rhel,57-ppc64,58-ppc64le,59-modular,60-modular_rawhide,61-modular_f27,62-modular_f28,63-modular_f29,64-modular_f30,65-f30,66-f31,67-f32,68-f33,69-modular_f31,70-modular_f32,71-modular_f33,72-epel8,73-epel9,74-f34,75-f35,76-f36,77-f37,78-f38,79-f39,80-modular_f34,81-modular_f35,82-modular_f36,83-modular_f37,84-modular_f38,85-modular_f39";
olddate="1970-01-02"; olddate="1970-01-02";
} }
@ -84,6 +97,7 @@ BEGIN{
else if ($3 ~"epel6") { epel6=epel6+1; epel=epel+1} else if ($3 ~"epel6") { epel6=epel6+1; epel=epel+1}
else if ($3 ~"epel7") { epel7=epel7+1; epel=epel+1} else if ($3 ~"epel7") { epel7=epel7+1; epel=epel+1}
else if ($3 ~"epel8") { epel8=epel8+1; epel=epel+1} else if ($3 ~"epel8") { epel8=epel8+1; epel=epel+1}
else if ($3 ~"epel9") { epel9=epel9+1; epel=epel+1}
else if ($3 ~"modular_f27") { modular_f27=modular_f27+1; modular=modular+1; } else if ($3 ~"modular_f27") { modular_f27=modular_f27+1; modular=modular+1; }
else if ($3 ~"modular_f28") { modular_f28=modular_f28+1; modular=modular+1; } else if ($3 ~"modular_f28") { modular_f28=modular_f28+1; modular=modular+1; }
else if ($3 ~"modular_f29") { modular_f29=modular_f29+1; modular=modular+1; } else if ($3 ~"modular_f29") { modular_f29=modular_f29+1; modular=modular+1; }
@ -91,6 +105,12 @@ BEGIN{
else if ($3 ~"modular_f31") { modular_f31=modular_f31+1; modular=modular+1; } else if ($3 ~"modular_f31") { modular_f31=modular_f31+1; modular=modular+1; }
else if ($3 ~"modular_f32") { modular_f32=modular_f32+1; modular=modular+1; } else if ($3 ~"modular_f32") { modular_f32=modular_f32+1; modular=modular+1; }
else if ($3 ~"modular_f33") { modular_f33=modular_f33+1; modular=modular+1; } else if ($3 ~"modular_f33") { modular_f33=modular_f33+1; modular=modular+1; }
else if ($3 ~"modular_f34") { modular_f34=modular_f34+1; modular=modular+1; }
else if ($3 ~"modular_f35") { modular_f35=modular_f35+1; modular=modular+1; }
else if ($3 ~"modular_f36") { modular_f36=modular_f36+1; modular=modular+1; }
else if ($3 ~"modular_f37") { modular_f37=modular_f37+1; modular=modular+1; }
else if ($3 ~"modular_f38") { modular_f38=modular_f38+1; modular=modular+1; }
else if ($3 ~"modular_f39") { modular_f39=modular_f39+1; modular=modular+1; }
else if ($3 ~"f03") { f03=f03+1; fedora=fedora+1} else if ($3 ~"f03") { f03=f03+1; fedora=fedora+1}
else if ($3 ~"f04") { f04=f04+1; fedora=fedora+1} else if ($3 ~"f04") { f04=f04+1; fedora=fedora+1}
else if ($3 ~"f05") { f05=f05+1; fedora=fedora+1} else if ($3 ~"f05") { f05=f05+1; fedora=fedora+1}
@ -122,6 +142,12 @@ BEGIN{
else if ($3 ~"f31") { f31=f31+1; fedora=fedora+1} else if ($3 ~"f31") { f31=f31+1; fedora=fedora+1}
else if ($3 ~"f32") { f32=f32+1; fedora=fedora+1} else if ($3 ~"f32") { f32=f32+1; fedora=fedora+1}
else if ($3 ~"f33") { f33=f33+1; fedora=fedora+1} else if ($3 ~"f33") { f33=f33+1; fedora=fedora+1}
else if ($3 ~"f34") { f34=f34+1; fedora=fedora+1}
else if ($3 ~"f35") { f35=f35+1; fedora=fedora+1}
else if ($3 ~"f36") { f36=f36+1; fedora=fedora+1}
else if ($3 ~"f37") { f37=f37+1; fedora=fedora+1}
else if ($3 ~"f38") { f38=f38+1; fedora=fedora+1}
else if ($3 ~"f39") { f39=f39+1; fedora=fedora+1}
else if ($3 ~"rawhide_modular") { rawhide_modular=rawhide_modular+1; rawhide=rawhide+1; modular=modular+1; fedora=fedora+1} else if ($3 ~"rawhide_modular") { rawhide_modular=rawhide_modular+1; rawhide=rawhide+1; modular=modular+1; fedora=fedora+1}
else if ($3 ~"rawhide") { rawhide=rawhide+1; fedora=fedora+1} else if ($3 ~"rawhide") { rawhide=rawhide+1; fedora=fedora+1}
else if ($3 ~"modular") { modular=modular+1; fedora=fedora+1 } else if ($3 ~"modular") { modular=modular+1; fedora=fedora+1 }
@ -165,7 +191,7 @@ BEGIN{
else {unknown_arch = unknown_arch +1; }; else {unknown_arch = unknown_arch +1; };
} else { } else {
if ( olddate !~ "1970-01-01" ) { if ( olddate !~ "1970-01-01" ) {
print olddate "," epel4 "," epel5 "," epel6 "," epel7 "," f03 "," f04 "," f05 "," f06 "," f07 "," f08 "," f09 "," f10 "," f11 "," f12 "," f13 "," f14 "," f15 "," f16 "," f17 "," f18 "," f19 "," f20 "," f21 "," f22 "," f23 "," f24 "," f25 "," f26 "," f27 "," f28 "," f29 "," rawhide "," unknown_release "," epel "," fedora "," alpha "," arm "," arm64 "," ia64 "," mips "," ppc "," s390 "," sparc "," tilegx "," x86_32 "," x86_64 "," x86_32_e "," x86_32_f "," x86_64_e "," x86_64_f "," ppc_e "," ppc_f "," unknown_arch "," centos "," rhel "," ppc64 "," ppc64le "," modular "," rawhide_modular "," modular_f27 "," modular_f28 "," modular_f29 "," modular_f30 "," f30 "," f31 "," f32 "," f33 "," modular_f31 "," modular_f32 "," modular_f33 "," epel8 ; print olddate "," epel4 "," epel5 "," epel6 "," epel7 "," f03 "," f04 "," f05 "," f06 "," f07 "," f08 "," f09 "," f10 "," f11 "," f12 "," f13 "," f14 "," f15 "," f16 "," f17 "," f18 "," f19 "," f20 "," f21 "," f22 "," f23 "," f24 "," f25 "," f26 "," f27 "," f28 "," f29 "," rawhide "," unknown_release "," epel "," fedora "," alpha "," arm "," arm64 "," ia64 "," mips "," ppc "," s390 "," sparc "," tilegx "," x86_32 "," x86_64 "," x86_32_e "," x86_32_f "," x86_64_e "," x86_64_f "," ppc_e "," ppc_f "," unknown_arch "," centos "," rhel "," ppc64 "," ppc64le "," modular "," rawhide_modular "," modular_f27 "," modular_f28 "," modular_f29 "," modular_f30 "," f30 "," f31 "," f32 "," f33 "," modular_f31 "," modular_f32 "," modular_f33 "," epel8 "," epel9 "," f34 "," f35 "," f36 "," f37 "," f38 "," f39 "," modular_f34 "," modular_f35 "," modular_f36 "," modular_f37 "," modular_f38 "," modular_f39 ;
}; };
olddate=$1 olddate=$1
epel=0; epel=0;
@ -246,7 +272,7 @@ BEGIN{
} }
END { END {
print olddate "," epel4 "," epel5 "," epel6 "," epel7 "," f03 "," f04 "," f05 "," f06 "," f07 "," f08 "," f09 "," f10 "," f11 "," f12 "," f13 "," f14 "," f15 "," f16 "," f17 "," f18 "," f19 "," f20 "," f21 "," f22 "," f23 "," f24 "," f25 "," f26 "," f27 "," f28 "," f29 "," rawhide "," unknown_release "," epel "," fedora "," alpha "," arm "," arm64 "," ia64 "," mips "," ppc "," s390 "," sparc "," tilegx "," x86_32 "," x86_64 "," x86_32_e "," x86_32_f "," x86_64_e "," x86_64_f "," ppc_e "," ppc_f "," unknown_arch "," centos "," rhel "," ppc64 "," ppc64le "," modular "," rawhide_modular "," modular_f27 "," modular_f28 "," modular_f29 "," modular_f30 "," f30 "," f31 "," f32 "," f33 "," modular_f31 "," modular_f32 "," modular_f33 "," epel8 ; print olddate "," epel4 "," epel5 "," epel6 "," epel7 "," f03 "," f04 "," f05 "," f06 "," f07 "," f08 "," f09 "," f10 "," f11 "," f12 "," f13 "," f14 "," f15 "," f16 "," f17 "," f18 "," f19 "," f20 "," f21 "," f22 "," f23 "," f24 "," f25 "," f26 "," f27 "," f28 "," f29 "," rawhide "," unknown_release "," epel "," fedora "," alpha "," arm "," arm64 "," ia64 "," mips "," ppc "," s390 "," sparc "," tilegx "," x86_32 "," x86_64 "," x86_32_e "," x86_32_f "," x86_64_e "," x86_64_f "," ppc_e "," ppc_f "," unknown_arch "," centos "," rhel "," ppc64 "," ppc64le "," modular "," rawhide_modular "," modular_f27 "," modular_f28 "," modular_f29 "," modular_f30 "," f30 "," f31 "," f32 "," f33 "," modular_f31 "," modular_f32 "," modular_f33 "," epel8 "," epel9 "," f34 "," f35 "," f36 "," f37 "," f38 "," f39 "," modular_f34 "," modular_f35 "," modular_f36 "," modular_f37 "," modular_f38 "," modular_f39 ;
} }