4

ユーザーの ssh キーを自動的にコピーしたいのですが、キーを持っていないユーザーがいます。

私が今持っているものは次のとおりです。

ssh_auth:                                                                                                                                                                      
  - present                                                                                                                                                                    
  - user: {{ usr }}                                                                                                                                                            
  - source: salt://users/keys/{{usr}}.id_rsa.pub 

ユーザーのキーが salt:// ファイルサーバーに存在しない場合、エラーが発生します。salt:// fileserver にファイルが存在するかどうかを確認する機能はありますか?

4

2 に答える 2

2

マスターのファイルサーバーで特定のファイルをチェックできるジンジャまたはソルト機能を知りません。これらのキーを、ユーザーのキーを含む柱のファイルにキーとして配置し、jinja を使用してそのキーの存在を検出し、必要に応じてキーを作成することをお勧めします。例えば:

柱ファイル:

# Name of file : user_pillar.sls
users:
  root:
    ssh_key: some_key_value
    home : /root
    createhome: True

状態ファイル:

# Name of file : users_salt_state_file.sls
{% for user,args in salt['pillar.get']('users',{}).iteritems() %}
# Ensure user is present
{{ user }}_user:
  user.present:
    - name: {{ user }}

# Home Creation
{% if args and 'home' in args %} 
    - home: {{ args['home'] }}
{% endif %}
{% if args and 'createhome' in args %} 
    - createhome: {{ args['createhome'] }}
{% endif %}

# SSH_auth
{% if args and 'ssh_key' in args %}
{{ args['ssh_key'] }}
  ssh_auth:                                                                                                                                                                      
    - present                                                                                                                                                                    
    - user: {{ user }}  
{% endfor %}
于 2014-03-23T03:53:14.743 に答える
2

状態だけでこれを行う方法を学ぶ必要があると思われる場合は、ソースのリストを指定してフォールバック メカニズムを使用できます。

ドキュメントから:

ssh_auth:                                                                        
  - present
  - user:{{usr}}
  - source:
    - salt://users/keys/{{usr}}.id_rsa.pub
    - salt://users/keys/null.id_rsa.pub

どこcat /dev/null > /srv/salt/users/keys/null.id_dsa.pub

専門的には、ユーザー キーはピラーに格納する必要があります。これは、ピラーが保存され、実行時にマスターから取得されるという追加機能を提供します。つまり、元のリクエストごとにファイルの存在をテストできます。私はopenvpn証明書のためにそのようなことをします:

http://garthwaite.org/virtually-secure-with-openvpn-pillars-and-salt.html

于 2014-03-24T15:27:32.167 に答える