2017-12-12 17 views
0

저는 조직에 추가 된 관리자이고 관리자가 admins 그룹에 추가되었습니다. 이전에는 부트 스트랩 명령을 실행할 수있었습니다. Windows 시스템 람 대한 기계에 -사용자가 관리자 그룹에있을 때 노드를 부트 스트랩 할 수 없습니다.

내가 지금 무엇 이건
knife bootstrap windows winrm <ip> -x <user> -P <pass> -r <run_list> -N <node_name> 

- ". 권한을 만들 수없는 등에 성공적으로 인증하지만 권한이 없습니다"내가 만난

사람이 수동으로 편집해야 말한다 전에 컨테이너 등을위한 acl 파일을 제출하면, 나는 지난 4 시간 동안 그렇게 해왔다.

나는 knife.rb를 확인했으며 명령의 일부로 명시 적으로 지정하는 것 외에 다른 구성은 존재하지 않는다고 확인했습니다. 서버에서 내 사용자를 관리자 및 조직의 일부로 확인했습니다. admins 그룹의 구성원 자격과 모든 컨테이너에 속한 관리자 그룹 및 요리사 저장소의 개체를 확인했습니다.

나는 또한 모든 개체에 대한 모든 액세스 권한을 부여한 "모든 것"이라는 새 그룹을 만들고이 그룹에 자신을 추가했습니다. 또한 클라이언트에게 허용 된 클라이언트를 추가하여 이러한 컨테이너를 편집 해 보았습니다.

보통이 메시지가 표시 될 때 노드 이름이 잘못되었거나 pem 파일의 경로가 잘못 되었기 때문입니다. 여기에서는 새로운 필을 작성하고 칼을 가리 키려고 시도했습니다. 새로운 사용자를 만들고, 관리자를 할당하고, 조직을 할당하고, 관리자 그룹에 추가합니다. 그러나 운이 없다.

클라이언트가 (나이프 클라이언트 목록을 통해) 생성되었지만 노드가 (나이프 노드 목록을 통해서도) 부트 스트랩 명령에 나타납니다. 이로 인해 누락 된 권한이 노드 객체에 있다고 생각하게되었습니다. 슬프게도, 모든 것이 체크 아웃됩니다. 그룹이 추가되고 사용자가이 그룹에 추가됩니다. 또한 셰어 서버의 현재 상태를 다운로드하여 오래된 데이터가 나를 혼란스럽게하지 않도록했습니다.

또한 서버에서 chef-server-ctl 테스트를 실행했는데 비정상적으로보고하지 않았습니다.

나는 또한 chef-client -l debug를 추적했지만 문제 나 오류를 보지 못했습니다.

권한, ACL 또는 그룹과 관련하여 아무 것도 변경되지 않았습니다. 왜 내가 더 이상 부트 스트랩을 할 수 없습니까? 존재하는 모든 객체에 대한 관리자 임에도 불구하고 요리 허가가 작성 권한을 잃어 버렸다고보고하는 이유는 무엇입니까? 완성도를 들어

: 여기에 https://gist.github.com/marseille/9811672b10bb613aa75e54f9f5e9aa44

답변

0

짧은 대답은

클라이언트 그룹은 노드 컨테이너에 권한을 만들 + 읽기 권한이 있어야합니다

는 A 검사기와

부트 스트랩이 제대로 작용 설명, 아직 사용자 자격 증명을 사용하여 부트 스트랩 하지 않았다.

나이프 노드 목록에 부트 스트랩 시도 후 만들어진 노드가 나열되지 않았기 때문에 노드를 만드는 데 문제가 있다는 것을 알고있었습니다. 키보드에서 머리를 치면 자세한 로깅 옵션이 숨겨져 있음을 발견했습니다. chef-server-ctl tail -

이 검사를 통해 클라이언트 작성을위한 API 요청이 내 사용자로 서명되었음을 알 수있었습니다. 그러나 노드 API 요청은 새로 작성된 노드에서 서명했습니다. 어느 권한이 없습니다. 클라이언트 + 노드 콤보를 추가하고 적절한 사용 권한을 할당 한 경우에도 부트 스트랩에서 사용자 자격 증명을 사용할 때 날아가 버릴 수 있습니다.

내 자신의 사용자를 노드 이름으로 지정하거나 API 사용자 (--user)를 지정하면이를 수정할 수 있다고 생각했습니다. 그렇지 않았습니다. 부트 스트랩 전후에 ACL을 조사한 결과, 클라이언트는 삭제 된 결과 모든 그룹 및 액터로부터 제거되었다.

따라서 노드를 만들 수있는 권한으로 새로운 클라이언트를 연결하는 방법이 필요했습니다. 클라이언트 그룹을 입력하십시오. 요리사는 새로 생성 된 클라이언트를 클라이언트 그룹에 자동으로 배치합니다. 클라이언트 그룹이 노드 컨테이너의 READ + CREATE ACL에 추가 된 후 모든 사용 권한 문제가 사라졌습니다.

요약하면 클라이언트 또는 노드를 덮어 쓰지 않고 유효성을 유지하면서 유효성 검사기를 사용한 부트 스트랩이 효과적입니다. 클라이언트와 노드를 모두 대체하여 사용자 자격 증명을 사용한 부트 스트랩이 작동하지 않았습니다.

메시지

"ERROR : 당신은 HTTPS에 성공적으로 인증 :. '사용자'로 // '요리사 서버 URL을'하지만이 작업에 대한 권한이 없습니다 응답 : 만들 수없는 권한"

은 부정확하게이므로 내 사용자에게 문제가되지 않았습니다. 실제로 클라이언트 문제. "누락 된 작성 권한"에서 확인할 수 있습니다. 이 메시지는 오도 된 것입니다.

0

가 관리자 그룹이 올바른 파마를 가진 기본합니다 로그,하지만 당신은 knife-acl (경고 수동으로 확인할 수 있습니다 :이 플러그인은 당신이 할 경우, 당신은 당신의 요리사 서버를 중단 할 수 있습니다 잘못된 것). clients 컨테이너 개체를 구체적으로 확인하려면 읽기 및 만들기 perm을 모두 찾고 있어야합니다.

+0

이미 확인했는데 현재 acl/containers/client.json /nodes.json에 대한 요지가 있습니다. https://gist.github.com/anonymous/ef69dd28e9bac297d0b115b818e17aa9, nodes : https : // gist. github.com/anonymous/a90f8fd77c373cb7289990b589b5c844 – Muradin007

+0

'knife client create'를 로컬로 실행할 수 있습니까? – coderanger

+0

예, 클라이언트, 노드 --- 모든 개체를 만들 수 있습니다. 그런 다음 나이프 노드/클라이언트 목록에 서버에 있는지 확인할 수 있습니다. – Muradin007