Я пытаюсь выполнить приведенную ниже команду, я хочу передать хосты из своего инвентаря группы ...
Ansible предоставляет вам переменную groups
. Это словарь, ключи которого являются именами групп, значениями являются списки хостов в каждой группе. Например, если у вас есть группа с именем vertica_servers
, вы можете написать что-то вроде этого:
- name: Install vertica
command: /opt/vertica/sbin/install_vertica --hosts ','.join(groups.vertica_servers) ...
Я хочу, чтобы ansible использовал ключ pem, который я передаю, для установки vertica. Где хранить ключ?
Похоже, у вас есть закрытый ключ ssh, и он будет использоваться командой install_vertica
для доступа к хостам в вашем кластере. Вам нужно начать с того, что этот закрытый ключ будет доступен на удаленном хосте, на котором вы запускаете команду install_vertica
. Вы можете сделать это с помощью задачи copy
:
- name: install private key
copy:
src: "{{ private_key_file }}"
dest: "/root/.ssh/vertica_key.pem"
mode: "0400"
owner: root
group: root
А затем передайте этот путь вашей install_vertica
команде:
- name: Install vertica
command: /opt/vertica/sbin/install_vertica --hosts ','.join(groups.vertica_servers) --ssh-identity /root/.ssh/vertica_key.pem
Предполагается, что вы указали private_key_file
путь к ключу в вашей локальной системе.