2016-11-24 3 views
1

배포 프로세스를 자동화하는 데 Ansible을 사용하고 싶습니다. 그것에 대해 몇 마디 말씀 드리겠습니다.가능합니다, windows - 네트워크 폴더에 액세스하는 방법?

  • 업데이트를 DB (SQL 스크립트) (다른 기계에) 다양한 네트워크 폴더에 파일의

  • 사본 미리 정의 된

를 들어 내 경우에는 배포 프로세스는 두 단계로 구성 이 목적은 Installer.exe라고하는 특별한 자체 작성 프로그램을 사용합니다. 내가 직접 실행하면 내 자격 증명으로 작업을 수행합니다. 그래서 모든 권리가 있습니다. 네트워크 폴더 및 SQL Databese에 대한 액세스 enter image description here 대신 내 프로그램 (Installer.exe) 대신 래퍼로 사용할 수 있습니다. 필자의 목표 시나리오 - 구성 파일을 준비하고 원격 Windows 컴퓨터에서 설치 프로그램을 실행합니다. 문제가 발생했습니다 - 내 프로그램이 Ansible에 의해 실행되었습니다. 내 권한이 없습니다. 동일한 컴퓨터에서 SQL 데이터베이스 1에 성공적으로 액세스 할 수 있지만 원격 컴퓨터 또는 액세스 네트워크 폴더에서 SQL 데이터베이스 2에 액세스 할 수는 없습니다. 나는 항상 네트워크 액세스에서 "액세스가 거부되었습니다."SQL Database는 NT AUTHORITY \ ANONYMOUS LOGON에 대해 말합니다. 이중 홉 문제처럼 보이지만 정확히 이해하지는 못합니다. 이중 홉은 서비스 계정에 관한 것이지만 내 개인 accoun와 함께 원격 서버에 액세스하려고합니다.

UPD 1 : 해당 그룹의 내 변수는 다음과 같습니다 나는 다음과 같은 명령을 실행 Ansible 어떤 행동하기 전에

ansible_user: [email protected] 
ansible_port: 5986 
ansible_connection: winrm 
ansible_winrm_server_cert_validation: ignore 
ansible_winrm_operation_timeout_sec: 120 
ansible_winrm_read_timeout_sec: 150 
ansible_winrm_transport: kerberos 
ansible_winrm_kerberos_delegation: yes 

:

$> kinit [email protected] 

및 암호를 입력합니다. 나중에 klist를 실행하면 유효한 티켓을 볼 수 있습니다. 도메인 계정을 사용하려고했지만 로컬 시스템 계정은 사용하지 않았습니다. 내가 제대로하고 있니? 내가 플레이 북과 같은 명령을 추가하는 경우 :

UPD 2

... 
raw: "klist" 
... 

내가 좋아하는 뭔가를 얻을 : 윈도우 머신이 실행되고 같은 문제 문을 기반으로

fatal: [targetserver.abc.ru]: FAILED! => {"changed": true, "failed": true, "rc": 1, "stderr": "", "stdout": "\r\nCurrent LogonId is 0:0x20265db4\r\nError calling API LsaCallAuthenticationPackage (ShowTickets substatus): 1312\r\n\r\nklist failed with 0xc000005f/-1073741729: A specified logon session does not exist. It may already have been terminated.\r\n\r\n\r\n", "stdout_lines": ["", "Current LogonId is 0:0x20265db4", "Error calling API LsaCallAuthenticationPackage (ShowTickets substatus): 1312", "", "klist failed with 0xc000005f/-1073741729: A specified logon session does not exist. It may already have been terminated.", "", ""]} 
+0

같은 문제가 있습니다.네트워크 폴더에 액세스하려고하면 액세스가 거부됩니다. 또한 : win_command : whoami는 내가 ansible_user로 설정 한 적절한 도메인 사용자를 보여줍니다. win_command : 'net use s : //some.server.name/a_network_folder/user : domain \ username password'는 "done successfully"실행을 제공합니다. win_command : net use는 드라이브 s :를 "사용할 수 없음"으로 표시합니다. 이 문제를 해결할 수 있었습니까? 방법? –

답변

2

를, 그것은 소리 Windows 시스템 자체의 권한이없는 로컬 시스템 계정에서 installer.exe를 실행하면 SQL 데이터베이스 2에서 프로 시저를 실행하는 데 항상 실패합니다. Kerberos 이중 홉 시나리오가 아닙니다. 하나의 예로, installer.exe와 SQL Database 2를 실행하는 다이어그램 중간에있는 Windows 컴퓨터 사이에는 단 하나의 홉만 존재합니다. Ansible 프로그램이 그 안에 installer.exe를 감싸고 있기 때문에, 뭔가 빠진 것이 아니라면 SQL 데이터베이스 2에 대한 적절한 권한을 가진 AD 도메인 자격 증명이있는 Windows 시스템의 가능한 프로그램.

EDIT : NT AUTHORITY \ ANONYMOUS LOGON에 관한 SQL Database 2 메시지를 해결하는 데 중점을 둡니다. Kerberos 이중 홉 문제 (그 것처럼 보이지는 않음)가 아니라, 내가 대답 한 것입니다. 사용자는 anonymous_user가 정의되었지만 anonymous_ssh_pass는 정의되어 있지 않습니다. 문서 (http://docs.ansible.com/ansible/intro_windows.html)에 명백한 버그가 있으므로, 해당 _ssh_password 대신에 secured_ssh_pass를 사용하십시오.

+0

나는 도메인 확장을 사용하려고 의도했으나 제대로했는지 확신 할 수 없었다. 내 질문을 업데이트했습니다. 'UPD 1'섹션을 볼 수 있습니까? – QtRoS

+1

질문에 대한 응답으로 내 대답을 편집했습니다 ... –

+0

ansible_user/ansible_ssh_pass 및/또는 행운없이 모든 가능한 조합을 시도했습니다. 업데이트 된 게시물. – QtRoS

관련 문제