2017-11-12 12 views
0

사용자를 생성하고 기존 RSA 공개 키를 추가 할 수있는 간단한 작업을 프로그래밍 중입니다. 이것은 내가 쓴 코드 :신뢰할 수있는 사용자 모듈을 사용하여 authorized_keys 파일에 기존 공개 키를 추가하는 방법은 무엇입니까?

- name: SYSTEM - Create test user 
    tags: system-user 
    user: 
     name: "{{ test_user }}" 
     state: present 
     createhome: yes 

- name: SYSTEM - Add existing pub key for test user 
    tags: system-user 
    copy: 
     content: "{{ test_user_pubkey }}" 
     dest: "/tmp/test_user_id_rsa.pub" 
     force: no 
     owner: "{{ test_user }}" 
     group: "{{ test_user }}" 
     mode: 0600 

- name: SYSTEM - Set authorized key for test_user took from file 
    tags: system-user 
    authorized_key: 
     user: "{{ test_user }}" 
     state: present 
     key: "{{ lookup('file', '/tmp/test_user_id_rsa.pub') }}" 

내가 쓴 코드는 우아하지 않고 내가 최선의 선택을 만들기 위해 사용자 생성 블록과 기존 RSA 공개 키를 추가 할 것이라고 생각까지 가득 authorized_keys 파일.

내가 authorized_keys의 파일에의 기존의 술집 키의 값을 에코 할 수있는 가능성을 포함하지 않는 Ansible user module하지만 ssh_key_file 방법을 읽은

(최종 목적은 원격 사용자와 개인을 사용하여 ssh를 연결 할 수있다 키).

ssh_key_file = 선택적으로 SSH 키 파일 이름을 지정하십시오. 상대 파일 이름이 인 경우 사용자의 집 디렉토리와 관련됩니다.

사용자 모듈 내에서이 프로세스를 관리 할 수 ​​있습니까?

+0

그래서 일부 코드를 작성하고 StackOverflow에 게시하기 전에 시도하지 않으셨습니까? 실행시 실패합니다. '/ tmp/test_user_id_rsa.pub'가 존재하지 않는다고 말할 것입니다 (로컬 컴퓨터에 혼란이 없다면 말입니다). – techraf

+0

오류 메시지가 나타나면 테스트를 진행하는 동안 오류 메시지가 표시되지만 게시물에서 언급하는 것을 잊어 버렸습니다. 나는 그것을 명확히하기 위해 편집 할 것이고, 나의 미래 지위에 대해 더 조심할 것이다. 또한 복사가 실행 된 후에도 파일이 존재하기 때문에 코드를 가져 오는 이유가 무엇인지 확신 할 수 없습니다. –

답변

1

문제에 대한 답변은 다음과 같습니다

- name: SYSTEM - Create test user 
    tags: system-user 
    user: 
    name: "{{ test_user }}" 
    state: present 
    createhome: yes 

- name: SYSTEM - Set authorized key for test_user took from file 
    tags: system-user 
    authorized_key: 
    user: "{{ test_user }}" 
    state: present 
    key: "{{ test_user_pubkey }}" 

필요한 모든 있다고. 문서의 독서에 관한


, ssh_key_file 당신이 원하는 아닌 SSH 키 쌍을 생성에 관한 것이다.

+0

그것은 매력처럼 작동합니다! 도움을 많이 주셔서 감사합니다. –