Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 414976a4bc | |||
| 196477798b | |||
| c5dead142f | |||
| 11cf16ff53 | |||
| 81af5f3922 | |||
| de3484c826 | |||
| a738ee71a8 | |||
| d9ec475184 | |||
| d7919a4a45 | |||
| f4717d9d69 | |||
| eae462797c | |||
| 18a1e94100 |
19
Jenkinsfile
vendored
19
Jenkinsfile
vendored
@@ -33,25 +33,6 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Save certs') {
|
|
||||||
when {
|
|
||||||
expression {
|
|
||||||
return params.rproxy_install
|
|
||||||
}
|
|
||||||
}
|
|
||||||
steps {
|
|
||||||
script {
|
|
||||||
withCredentials([
|
|
||||||
file(credentialsId: "ROOTCA_CERT", variable: "rootca"),
|
|
||||||
file(credentialsId: "ROOTCA_KEY", variable: "rootca_key")
|
|
||||||
]) {
|
|
||||||
sh(script: "cp ${rootca} roles/gitlab/files/RootCA.crt", returnStdout: false)
|
|
||||||
sh(script: "cp ${rootca_key} roles/gitlab/files/RootCA.key", returnStdout: false)
|
|
||||||
sh(script: "chmod 700 roles/patroni/files/RootCA*", returnStdout: false)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Prepare inventory') {
|
stage('Prepare inventory') {
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
|
|||||||
12
README.md
12
README.md
@@ -37,17 +37,7 @@ Files should be stored in /opt/rproxy/repo/ to be shared.
|
|||||||
## Docker-registry
|
## Docker-registry
|
||||||
Would be installed with rproxy service. Hosted on port 5000.
|
Would be installed with rproxy service. Hosted on port 5000.
|
||||||
Images would be stored in /opt/dockerrepo/repo/. Uses SSL so you should have trust with root certificate. \
|
Images would be stored in /opt/dockerrepo/repo/. Uses SSL so you should have trust with root certificate. \
|
||||||
Install trust with root certificate:
|
Install trust with root certificate
|
||||||
```bash
|
|
||||||
# RHEL based
|
|
||||||
openssl x509 -in RootCA.crt -out RootCA.pem -outform PEM
|
|
||||||
mv RootCA.pem /etc/pki/ca-trust/source/anchors/
|
|
||||||
update-ca-trust force-enable
|
|
||||||
|
|
||||||
# Debian based
|
|
||||||
mv RootCA.crt /usr/local/share/ca-certificates/
|
|
||||||
update-ca-certificates
|
|
||||||
```
|
|
||||||
How to store image:
|
How to store image:
|
||||||
```bash
|
```bash
|
||||||
# After image build
|
# After image build
|
||||||
|
|||||||
@@ -8,95 +8,75 @@
|
|||||||
|
|
||||||
- name: Generate certificates for {{ rproxy_service_name }}
|
- name: Generate certificates for {{ rproxy_service_name }}
|
||||||
block:
|
block:
|
||||||
- name: "Generate {{ rproxy_service_name }}.key"
|
- name: Create CNAME dns record
|
||||||
community.crypto.openssl_privatekey:
|
community.general.ipa_dnsrecord:
|
||||||
path: "{{ rproxy_dir }}/certs/{{ rproxy_service_name }}.key"
|
ipa_user: "{{ ansible_user }}"
|
||||||
size: "2048"
|
ipa_pass: "{{ ansible_password }}"
|
||||||
|
zone_name: "{{ ansible_facts['domain'] }}"
|
||||||
|
record_name: "{{ rproxy_service_name }}"
|
||||||
|
record_type: 'CNAME'
|
||||||
|
record_value: "{{ ansible_facts['hostname'] }}"
|
||||||
|
state: present
|
||||||
|
|
||||||
- name: "Generate {{ rproxy_service_name }}.csr"
|
- name: Kinit
|
||||||
community.crypto.openssl_csr:
|
|
||||||
path: "{{ rproxy_dir }}/certs/{{ rproxy_service_name }}.csr"
|
|
||||||
privatekey_path: "{{ rproxy_dir }}/certs/{{ rproxy_service_name }}.key"
|
|
||||||
country_name: "RU"
|
|
||||||
state_or_province_name: "RU"
|
|
||||||
locality_name: "MSK"
|
|
||||||
organization_name: "{{ ansible_domain }}"
|
|
||||||
organizational_unit_name: "IT"
|
|
||||||
common_name: "{{ rproxy_service_name }}.{{ ansible_facts['domain'] }}"
|
|
||||||
email_address: "admin@{{ ansible_domain }}"
|
|
||||||
subject_alt_name: "DNS:{{ rproxy_service_name }}.{{ ansible_facts['domain'] }},DNS:{{ ansible_facts['hostname'] }}.{{ ansible_facts['domain'] }},IP:{{ ansible_facts['default_ipv4']['address'] }}"
|
|
||||||
key_usage:
|
|
||||||
- digitalSignature
|
|
||||||
- nonRepudiation
|
|
||||||
- keyEncipherment
|
|
||||||
- dataEncipherment
|
|
||||||
extended_key_usage:
|
|
||||||
- serverAuth
|
|
||||||
|
|
||||||
- name: "Generate {{ rproxy_service_name }}.crt"
|
|
||||||
community.crypto.x509_certificate:
|
|
||||||
csr_path: "{{ rproxy_dir }}/certs/{{ rproxy_service_name }}.csr"
|
|
||||||
path: "{{ rproxy_dir }}/certs/{{ rproxy_service_name }}.crt"
|
|
||||||
privatekey_path: "{{ rproxy_dir }}/certs/{{ rproxy_service_name }}.key"
|
|
||||||
provider: ownca
|
|
||||||
ownca_create_subject_key_identifier: always_create
|
|
||||||
ownca_path: "{{ rproxy_dir }}/certs/RootCA.crt"
|
|
||||||
ownca_privatekey_path: "{{ rproxy_dir }}/certs/RootCA.key"
|
|
||||||
ownca_not_after: "+365d"
|
|
||||||
|
|
||||||
- name: Create fullchain certificate
|
|
||||||
ansible.builtin.shell:
|
ansible.builtin.shell:
|
||||||
cmd: 'cat {{ rproxy_dir }}/certs/RootCA.crt >> {{ rproxy_dir }}/certs/{{ rproxy_service_name }}.crt'
|
cmd: "echo '{{ ansible_password }}' | kinit"
|
||||||
|
become: false
|
||||||
|
become_user: "{{ ansible_user }}"
|
||||||
|
|
||||||
- name: Delete csr
|
- name: Create fake host for certificate
|
||||||
|
ansible.builtin.shell:
|
||||||
|
cmd: "ipa host-add {{ rproxy_service_name }}.{{ ansible_facts['domain'] }} --force --desc=\"Fake host for SPN\""
|
||||||
|
become: false
|
||||||
|
become_user: "{{ ansible_user }}"
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: Create SPN for HTTP
|
||||||
|
ansible.builtin.shell:
|
||||||
|
cmd: "ipa service-add HTTP/{{ rproxy_service_name }}.{{ ansible_facts['domain'] }} --skip-host-check --force"
|
||||||
|
become: false
|
||||||
|
become_user: "{{ ansible_user }}"
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: "Allow {{ ansible_facts['hostname'] }}.{{ ansible_facts['domain'] }} to get certificates for HTTP/{{ rproxy_service_name }}.{{ ansible_facts['domain'] }} SPN "
|
||||||
|
ansible.builtin.shell:
|
||||||
|
cmd: "ipa service-add-host --hosts={{ ansible_facts['hostname'] }}.{{ ansible_facts['domain'] }} HTTP/{{ rproxy_service_name }}.{{ ansible_facts['domain'] }}"
|
||||||
|
become: false
|
||||||
|
become_user: "{{ ansible_user }}"
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: Request certificate via ipa-getcert
|
||||||
|
ansible.builtin.command: >
|
||||||
|
ipa-getcert request
|
||||||
|
-f {{ rproxy_dir }}/certs/{{ rproxy_service_name }}.{{ ansible_facts['domain'] }}.crt
|
||||||
|
-k {{ rproxy_dir }}/certs/{{ rproxy_service_name }}.{{ ansible_facts['domain'] }}.key
|
||||||
|
-K HTTP/{{ rproxy_service_name }}.{{ ansible_facts['domain'] }}
|
||||||
|
-N CN={{ rproxy_service_name }}.{{ ansible_facts['domain'] }}
|
||||||
|
|
||||||
|
# sudo ipa-getcert stop-tracking -i 20250813210258 if track already exists
|
||||||
|
|
||||||
|
- name: Wait for certificate to appear
|
||||||
|
ansible.builtin.wait_for:
|
||||||
|
path: "{{ rproxy_dir }}/certs/{{ rproxy_service_name }}.{{ ansible_facts['domain'] }}.crt"
|
||||||
|
timeout: 60
|
||||||
|
|
||||||
|
- name: Change certificate permissions
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ rproxy_dir }}/certs/{{ rproxy_service_name }}.csr"
|
path: "{{ rproxy_dir }}/certs/{{ rproxy_service_name }}.{{ ansible_facts['domain'] }}.crt"
|
||||||
state: absent
|
mode: "0744"
|
||||||
|
|
||||||
- name: Restart rproxy
|
- name: Wait for certificate key to appear
|
||||||
block:
|
ansible.builtin.wait_for:
|
||||||
- name: Restart container
|
path: "{{ rproxy_dir }}/certs/{{ rproxy_service_name }}.{{ ansible_facts['domain'] }}.key"
|
||||||
containers.podman.podman_container:
|
timeout: 60
|
||||||
name: rproxy
|
|
||||||
image: "docker.io/library/nginx:{{ rproxy_version }}"
|
|
||||||
state: started
|
|
||||||
restart: true
|
|
||||||
ports:
|
|
||||||
- "443:443"
|
|
||||||
- "80:80"
|
|
||||||
- "9000:9000"
|
|
||||||
volumes:
|
|
||||||
- '{{ rproxy_dir }}/nginx.conf:/etc/nginx/nginx.conf:z,rw'
|
|
||||||
- '{{ rproxy_dir }}/sites:/etc/nginx/sites:z,rw'
|
|
||||||
- '{{ rproxy_dir }}/certs:/etc/nginx/certs:z,rw'
|
|
||||||
- '{{ repo_data_dir }}:/repo:z,rw'
|
|
||||||
- "/etc/localtime:/etc/localtime:ro"
|
|
||||||
privileged: true
|
|
||||||
security_opt:
|
|
||||||
- "label=disable"
|
|
||||||
log_driver: journald
|
|
||||||
generate_systemd:
|
|
||||||
path: /etc/systemd/system/
|
|
||||||
restart_policy: always
|
|
||||||
stop_timeout: 120
|
|
||||||
names: true
|
|
||||||
|
|
||||||
- name: Daemon reload
|
- name: Change certificate key permissions
|
||||||
ansible.builtin.shell:
|
ansible.builtin.file:
|
||||||
cmd: systemctl daemon-reload
|
path: "{{ rproxy_dir }}/certs/{{ rproxy_service_name }}.{{ ansible_facts['domain'] }}.key"
|
||||||
|
mode: "0744"
|
||||||
|
|
||||||
- name: Enable rproxy service
|
- name: Restart rproxy service
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.systemd:
|
||||||
name: "container-rproxy.service"
|
name: "container-rproxy.service"
|
||||||
state: started
|
state: restarted
|
||||||
enabled: yes
|
enabled: yes
|
||||||
|
|
||||||
- name: Create CNAME dns record
|
|
||||||
community.general.ipa_dnsrecord:
|
|
||||||
ipa_user: "{{ ansible_user }}"
|
|
||||||
ipa_pass: "{{ ansible_password }}"
|
|
||||||
zone_name: "{{ ansible_facts['domain'] }}"
|
|
||||||
record_name: "{{ rproxy_service_name }}"
|
|
||||||
record_type: 'CNAME'
|
|
||||||
record_value: "{{ ansible_facts['hostname'] }}"
|
|
||||||
state: present
|
|
||||||
@@ -23,50 +23,48 @@
|
|||||||
|
|
||||||
- name: Create certificates for image repository
|
- name: Create certificates for image repository
|
||||||
block:
|
block:
|
||||||
- name: "Generate dockerrepo.key"
|
- name: Kinit
|
||||||
community.crypto.openssl_privatekey:
|
|
||||||
path: "{{ dockerrepo_dir }}/certs/dockerrepo.key"
|
|
||||||
size: "2048"
|
|
||||||
|
|
||||||
- name: "Generate server.csr"
|
|
||||||
community.crypto.openssl_csr:
|
|
||||||
path: "{{ dockerrepo_dir }}/certs/dockerrepo.csr"
|
|
||||||
privatekey_path: "{{ dockerrepo_dir }}/certs/dockerrepo.key"
|
|
||||||
country_name: "RU"
|
|
||||||
state_or_province_name: "RU"
|
|
||||||
locality_name: "MSK"
|
|
||||||
organization_name: "{{ ansible_domain }}"
|
|
||||||
organizational_unit_name: "IT"
|
|
||||||
common_name: "{{ ansible_facts['hostname'] }}.{{ ansible_facts['domain'] }}"
|
|
||||||
email_address: "admin@{{ ansible_domain }}"
|
|
||||||
subject_alt_name: "DNS:{{ ansible_facts['hostname'] }}.{{ ansible_facts['domain'] }},DNS:imagerepo.{{ ansible_facts['domain'] }},IP:{{ ansible_facts['default_ipv4']['address'] }}"
|
|
||||||
key_usage:
|
|
||||||
- digitalSignature
|
|
||||||
- nonRepudiation
|
|
||||||
- keyEncipherment
|
|
||||||
- dataEncipherment
|
|
||||||
extended_key_usage:
|
|
||||||
- serverAuth
|
|
||||||
|
|
||||||
- name: "Generate server.crt"
|
|
||||||
community.crypto.x509_certificate:
|
|
||||||
csr_path: "{{ dockerrepo_dir }}/certs/dockerrepo.csr"
|
|
||||||
path: "{{ dockerrepo_dir }}/certs/dockerrepo.crt"
|
|
||||||
privatekey_path: "{{ dockerrepo_dir }}/certs/dockerrepo.key"
|
|
||||||
provider: ownca
|
|
||||||
ownca_create_subject_key_identifier: always_create
|
|
||||||
ownca_path: "{{ rproxy_dir }}/certs/RootCA.crt"
|
|
||||||
ownca_privatekey_path: "{{ rproxy_dir }}/certs/RootCA.key"
|
|
||||||
ownca_not_after: "+365d"
|
|
||||||
|
|
||||||
- name: Create fullchain certificate
|
|
||||||
ansible.builtin.shell:
|
ansible.builtin.shell:
|
||||||
cmd: 'cat {{ rproxy_dir }}/certs/RootCA.crt >> {{ dockerrepo_dir }}/certs/dockerrepo.crt'
|
cmd: "echo '{{ ansible_password }}' | kinit"
|
||||||
|
become: false
|
||||||
|
become_user: "{{ ansible_user }}"
|
||||||
|
|
||||||
- name: Delete csr
|
- name: Create SPN for HTTP
|
||||||
|
ansible.builtin.shell:
|
||||||
|
cmd: "ipa service-add HTTP/{{ ansible_facts['hostname'] }}.{{ ansible_facts['domain'] }}"
|
||||||
|
become: false
|
||||||
|
become_user: "{{ ansible_user }}"
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: Request certificate via ipa-getcert
|
||||||
|
ansible.builtin.command: >
|
||||||
|
ipa-getcert request
|
||||||
|
-f {{ rproxy_dir }}/certs/dockerrepo.crt
|
||||||
|
-k {{ rproxy_dir }}/certs/dockerrepo.key
|
||||||
|
-K HTTP/{{ ansible_facts['hostname'] }}.{{ ansible_facts['domain'] }}
|
||||||
|
-N CN={{ ansible_facts['hostname'] }}.{{ ansible_facts['domain'] }}
|
||||||
|
|
||||||
|
# sudo ipa-getcert stop-tracking -i 20250813210258 if track already exists
|
||||||
|
|
||||||
|
- name: Wait for certificate to appear
|
||||||
|
ansible.builtin.wait_for:
|
||||||
|
path: "{{ rproxy_dir }}/certs/dockerrepo.crt"
|
||||||
|
timeout: 60
|
||||||
|
|
||||||
|
- name: Change certificate permissions
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ dockerrepo_dir }}/certs/dockerrepo.csr"
|
path: "{{ rproxy_dir }}/certs/dockerrepo.crt"
|
||||||
state: absent
|
mode: "0744"
|
||||||
|
|
||||||
|
- name: Wait for certificate key to appear
|
||||||
|
ansible.builtin.wait_for:
|
||||||
|
path: "{{ rproxy_dir }}/certs/dockerrepo.key"
|
||||||
|
timeout: 60
|
||||||
|
|
||||||
|
- name: Change certificate key permissions
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ rproxy_dir }}/certs/dockerrepo.key"
|
||||||
|
mode: "0744"
|
||||||
|
|
||||||
- name: Start image repository
|
- name: Start image repository
|
||||||
block:
|
block:
|
||||||
|
|||||||
@@ -14,85 +14,61 @@
|
|||||||
|
|
||||||
- name: Create https certificates for repository
|
- name: Create https certificates for repository
|
||||||
block:
|
block:
|
||||||
- name: "Generate repo.key"
|
- name: Kinit
|
||||||
community.crypto.openssl_privatekey:
|
ansible.builtin.shell:
|
||||||
path: "{{ rproxy_dir }}/certs/repo.key"
|
cmd: "echo '{{ ansible_password }}' | kinit"
|
||||||
size: "2048"
|
become: false
|
||||||
|
become_user: "{{ ansible_user }}"
|
||||||
|
|
||||||
- name: "Generate server.csr"
|
- name: Create SPN for HTTP
|
||||||
community.crypto.openssl_csr:
|
ansible.builtin.shell:
|
||||||
path: "{{ rproxy_dir }}/certs/repo.csr"
|
cmd: "ipa service-add HTTP/{{ ansible_facts['hostname'] }}.{{ ansible_facts['domain'] }}"
|
||||||
privatekey_path: "{{ rproxy_dir }}/certs/repo.key"
|
become: false
|
||||||
country_name: "RU"
|
become_user: "{{ ansible_user }}"
|
||||||
state_or_province_name: "RU"
|
ignore_errors: true
|
||||||
locality_name: "MSK"
|
|
||||||
organization_name: "{{ ansible_domain }}"
|
|
||||||
organizational_unit_name: "IT"
|
|
||||||
common_name: "{{ ansible_facts['hostname'] }}.{{ ansible_facts['domain'] }}"
|
|
||||||
email_address: "admin@{{ ansible_domain }}"
|
|
||||||
subject_alt_name: "DNS:{{ ansible_facts['hostname'] }}.{{ ansible_facts['domain'] }},DNS:repo.{{ ansible_facts['domain'] }},IP:{{ ansible_facts['default_ipv4']['address'] }}"
|
|
||||||
key_usage:
|
|
||||||
- digitalSignature
|
|
||||||
- nonRepudiation
|
|
||||||
- keyEncipherment
|
|
||||||
- dataEncipherment
|
|
||||||
extended_key_usage:
|
|
||||||
- serverAuth
|
|
||||||
|
|
||||||
- name: "Generate server.crt"
|
- name: Get all tracking certificates
|
||||||
community.crypto.x509_certificate:
|
ansible.builtin.shell:
|
||||||
csr_path: "{{ rproxy_dir }}/certs/repo.csr"
|
cmd: ipa-getcert list | grep "ID" | awk '{print $NF}' | tr -d "'\|:"
|
||||||
|
register: tracking_list
|
||||||
|
|
||||||
|
- name: Remove certificates from IPA tracking
|
||||||
|
ansible.builtin.shell:
|
||||||
|
cmd: "ipa-getcert stop-tracking -i {{ item }}"
|
||||||
|
loop: "{{ tracking_list.stdout_lines }}"
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: Request certificate via ipa-getcert
|
||||||
|
ansible.builtin.command: >
|
||||||
|
ipa-getcert request
|
||||||
|
-f {{ rproxy_dir }}/certs/repo.crt
|
||||||
|
-k {{ rproxy_dir }}/certs/repo.key
|
||||||
|
-K HTTP/{{ ansible_facts['hostname'] }}.{{ ansible_facts['domain'] }}
|
||||||
|
-N CN={{ ansible_facts['hostname'] }}.{{ ansible_facts['domain'] }}
|
||||||
|
-F {{ rproxy_dir }}/certs/RootCA.crt
|
||||||
|
|
||||||
|
- name: Wait for certificate to appear
|
||||||
|
ansible.builtin.wait_for:
|
||||||
path: "{{ rproxy_dir }}/certs/repo.crt"
|
path: "{{ rproxy_dir }}/certs/repo.crt"
|
||||||
privatekey_path: "{{ rproxy_dir }}/certs/repo.key"
|
timeout: 60
|
||||||
provider: ownca
|
|
||||||
ownca_create_subject_key_identifier: always_create
|
|
||||||
ownca_path: "{{ rproxy_dir }}/certs/RootCA.crt"
|
|
||||||
ownca_privatekey_path: "{{ rproxy_dir }}/certs/RootCA.key"
|
|
||||||
ownca_not_after: "+365d"
|
|
||||||
|
|
||||||
- name: Create fullchain certificate
|
- name: Change certificate permissions
|
||||||
ansible.builtin.shell:
|
|
||||||
cmd: 'cat {{ rproxy_dir }}/certs/RootCA.crt >> {{ rproxy_dir }}/certs/repo.crt'
|
|
||||||
|
|
||||||
- name: Delete csr
|
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ rproxy_dir }}/certs/repo.csr"
|
path: "{{ rproxy_dir }}/certs/repo.crt"
|
||||||
state: absent
|
mode: "0744"
|
||||||
|
|
||||||
- name: Restart rproxy
|
- name: Wait for certificate key to appear
|
||||||
block:
|
ansible.builtin.wait_for:
|
||||||
- name: Restart container
|
path: "{{ rproxy_dir }}/certs/repo.key"
|
||||||
containers.podman.podman_container:
|
timeout: 60
|
||||||
name: rproxy
|
|
||||||
image: "docker.io/library/nginx:{{ rproxy_version }}"
|
|
||||||
state: started
|
|
||||||
restart: true
|
|
||||||
ports:
|
|
||||||
- "443:443"
|
|
||||||
- "80:80"
|
|
||||||
- "9000:9000"
|
|
||||||
volumes:
|
|
||||||
- '{{ rproxy_dir }}/nginx.conf:/etc/nginx/nginx.conf:z,rw'
|
|
||||||
- '{{ rproxy_dir }}/sites:/etc/nginx/sites:z,rw'
|
|
||||||
- '{{ rproxy_dir }}/certs:/etc/nginx/certs:z,rw'
|
|
||||||
- '{{ repo_data_dir }}:/repo:z,rw'
|
|
||||||
- "/etc/localtime:/etc/localtime:ro"
|
|
||||||
privileged: true
|
|
||||||
security_opt:
|
|
||||||
- "label=disable"
|
|
||||||
log_driver: journald
|
|
||||||
generate_systemd:
|
|
||||||
path: /etc/systemd/system/
|
|
||||||
restart_policy: always
|
|
||||||
stop_timeout: 120
|
|
||||||
names: true
|
|
||||||
|
|
||||||
- name: Daemon reload
|
- name: Change certificate key permissions
|
||||||
ansible.builtin.shell:
|
ansible.builtin.file:
|
||||||
cmd: systemctl daemon-reload
|
path: "{{ rproxy_dir }}/certs/repo.key"
|
||||||
|
mode: "0744"
|
||||||
|
|
||||||
- name: Enable rproxy service
|
- name: Restart rproxy service
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.systemd:
|
||||||
name: "container-rproxy.service"
|
name: "container-rproxy.service"
|
||||||
state: started
|
state: restarted
|
||||||
enabled: yes
|
enabled: yes
|
||||||
@@ -36,16 +36,6 @@
|
|||||||
src: files/nginx.conf
|
src: files/nginx.conf
|
||||||
dest: "{{ rproxy_dir }}/nginx.conf"
|
dest: "{{ rproxy_dir }}/nginx.conf"
|
||||||
|
|
||||||
- name: Copy RootCA certificate
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: files/RootCA.crt
|
|
||||||
dest: '{{ rproxy_dir }}/certs/RootCA.crt'
|
|
||||||
|
|
||||||
- name: Copy RootCA key
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: files/RootCA.key
|
|
||||||
dest: '{{ rproxy_dir }}/certs/RootCA.key'
|
|
||||||
|
|
||||||
- name: Install rproxy
|
- name: Install rproxy
|
||||||
block:
|
block:
|
||||||
- name: Pull rproxy image
|
- name: Pull rproxy image
|
||||||
@@ -83,12 +73,9 @@
|
|||||||
stop_timeout: 120
|
stop_timeout: 120
|
||||||
names: true
|
names: true
|
||||||
|
|
||||||
- name: Daemon reload
|
|
||||||
ansible.builtin.shell:
|
|
||||||
cmd: systemctl daemon-reload
|
|
||||||
|
|
||||||
- name: Enable rproxy service
|
- name: Enable rproxy service
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.systemd:
|
||||||
name: "container-rproxy.service"
|
name: "container-rproxy.service"
|
||||||
state: started
|
state: started
|
||||||
enabled: yes
|
enabled: yes
|
||||||
|
daemon_reload: yes
|
||||||
@@ -15,8 +15,8 @@ server {
|
|||||||
server_name {{ rproxy_service_name }}.{{ ansible_domain }};
|
server_name {{ rproxy_service_name }}.{{ ansible_domain }};
|
||||||
access_log /var/log/nginx/{{ rproxy_service_name }}.access.log;
|
access_log /var/log/nginx/{{ rproxy_service_name }}.access.log;
|
||||||
error_log /var/log/nginx/{{ rproxy_service_name }}.error.log;
|
error_log /var/log/nginx/{{ rproxy_service_name }}.error.log;
|
||||||
ssl_certificate /etc/nginx/certs/{{ rproxy_service_name }}.crt;
|
ssl_certificate /etc/nginx/certs/{{ rproxy_service_name }}.{{ ansible_domain }}.crt;
|
||||||
ssl_certificate_key /etc/nginx/certs/{{ rproxy_service_name }}.key;
|
ssl_certificate_key /etc/nginx/certs/{{ rproxy_service_name }}.{{ ansible_domain }}.key;
|
||||||
ssl_protocols TLSv1.2;
|
ssl_protocols TLSv1.2;
|
||||||
ssl_ciphers EECDH:+AES256:-3DES:!RSA+AES:!RSA+3DES:!NULL:!RC4;
|
ssl_ciphers EECDH:+AES256:-3DES:!RSA+AES:!RSA+3DES:!NULL:!RC4;
|
||||||
ssl_prefer_server_ciphers on;
|
ssl_prefer_server_ciphers on;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
ansible_python_interpreter: /usr/bin/python3
|
ansible_python_interpreter: /usr/bin/python3
|
||||||
rproxy_dir: /opt/rproxy
|
rproxy_dir: /opt/rproxy
|
||||||
rproxy_version: latest
|
rproxy_version: 1.29.0
|
||||||
data_dir: /opt/data
|
data_dir: /opt/data
|
||||||
repo_data_dir: /opt/data/repo
|
repo_data_dir: /opt/data/repo
|
||||||
dockerrepo_dir: /opt/dockerrepo
|
dockerrepo_dir: /opt/dockerrepo
|
||||||
|
|||||||
Reference in New Issue
Block a user