Мне нужно сгенерировать ssh-ключи (публичная / приватная пара) для пользователя, скажем, Хелен. Этот пользователь уже есть во всех моих соляных миньонах. Как мне сгенерировать ssh-ключи для этого пользователя из моего мастера соли?
Для пользователя root я сгенерировал ключи с помощью этой команды, и она отлично работала:
salt '*application-server-*' cmd.run "ssh-keygen -q -N '' -f /root/.ssh/id_rsa"
Я могу выполнить следующую команду, которая может сгенерировать ssh-ключи для helen; но разрешения и владельцы будут другими; поэтому необходимо снова ввести команды, чтобы исправить разрешения и владения:
salt '*application-server-*' cmd.run "ssh-keygen -q -N '' -f /home/helen/.ssh/id_rsa"
Есть ли способ в соли запустить эту команду как пользователь helen вместо root?
В общем, есть ли способ в соли запустить команду от имени пользователя без полномочий root?
salt
командаsalt '*application-server-*' cmd.run \
"ssh-keygen -q -N '' -f /home/helen/.ssh/id_rsa" \
runas=helen
http://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.cmdmod.html#salt.modules.cmdmod.run
Вы можете указать пользователя при использовании cmd
состояние, установив runas
к имени пользователя, чтобы запустить команду как:
generate_ssh_key_helen:
cmd.run:
- name: ssh-keygen -q -N '' -f /home/helen/.ssh/id_rsa
- runas: helen
- unless: test -f /home/helen/.ssh/id_rsa
http://docs.saltstack.com/en/latest/ref/states/all/salt.states.cmd.html#salt.states.cmd.run