Я создаю закрытый ключ и файл csr через ansible. Я застрял в том, как передать имена CN и alt (список, разделенный запятыми) в ansible playbook.
ручная команда и файл конфигурации.
openssl req -new -sha256 -nodes -out NEW.csr -newkey rsa:2048 -keyout NEW.key -config config.txt
[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn
[dn]
C=US
ST=NEWYORK
L=CITY
O=ABC
OU=XYZ
emailAddress=ABC@XYZ.com
CN = uat.com
[req_ext]
subjectAltName = @alt_names
[alt_names]
DNS.1 = us.uat.com
DNS.2 = apac.uat.com
DNS.3 = 123
DNS.4 = abc
DNS.5 = xyz
Я создал playbook ниже, но застрял на том, как передать CN и alt_names в виде списка, разделенного запятыми, в качестве входных данных, а также, если существует существующий CN с alt_names, я хочу, чтобы ansible добавлялся / добавить записи DNS-сервера в файл конфигурации и создать новый файл csr.
- name: Generate an OpenSSL private RSA key with size-2048 bits
openssl_privatekey:
path: API.key_{{ansible_date_time.iso8601}}
type: RSA
size: 2048
register: privatekey
- name: Generate an OpenSSL certificate signing request file bases on input key values
openssl_csr:
path: API.csr_{{ansible_date_time.iso8601}}
privatekey_path: "{{ privatekey.filename }}"
common_name: "{{ CN }}"
group: apigee
owner: apigee
mode: '700'
digest: sha256
email_address: abc@xyz.com
country_name: US
locality_name:
organization_name:
organizational_unit_name:
state_or_province_name:
subject_alt_name: "{{ item.value | map('regex_replace', '^', 'DNS:') | list }}"
with_dict:
dns_server:
- www.ansible.com
- m.ansible.com
- debug: var="{{ item }}"
with_items:
- csr.filename
- csr.privatekey
- csr.subject
- csr.subjectAltName