Adiciona um grupo a um grupo com Chef no Windows

2

Estou tentando gerenciar um servidor Windows com o chef e preciso criar alguns usuários, adicioná-los a um grupo e adicionar esse grupo a outro grupo.

user 'test.user' do
    password    'password'
    action      :create
end

group 'TestGroup' do
    action  :create
    members [ 'test.user' ]
    append  true
end

group 'OtherGroup' do          # This is line 43
    action  :create
    members [ 'TestGroup' ]
    append  true
end

Isso resulta em um erro:

[2015-02-12T09:54:35+00:00] FATAL: ArgumentError: group[OtherGroup] (users::staff line 43) had an error: ArgumentError: A new member could not be added to a local group because the member has the wrong account type.

É como se o Chef não pudesse adicionar um grupo a um grupo. Adicionar usuários a um grupo é bom.

Estranhamente, parece apenas afetar um grupo personalizado. Eu posso adicionar aos grupos de usuários e administradores internos bem.

group 'Administrators' do
    action  :modify
    members [ 'TestGroup' ]
    append  true
end

Eu também tentei criar o OtherGroup empty primeiro e depois: modificá-lo, mas o mesmo problema acontece.

    
por Cylindric 12.02.2015 / 11:02

1 resposta

1

Você não especificou qual versão do Windows Server você está trabalhando, nem a versão do Chef - então estas são algumas suposições.

A partir dos documentos do Chef, não parece que adicionar um grupo como membro de um grupo seja suportado:

members

Ruby Type: Array

Which users should be set or appended to a group. When more than one group member is identified, the list of members should be an array: members ['user1', 'user2'].

Na mensagem de erro, podemos deduzir que a operação que está sendo tentada está adicionando um grupo local a outro grupo local.

O método da API do Windows que o Chef está usando sob os estados do capô (ênfase minha):

The NetLocalGroupAddMembers function adds membership of one or more existing user accounts or global group accounts to an existing local group. The function does not change the membership status of users or global groups that are currently members of the local group.

Não parece haver muita cobertura de especificação / teste para as chamadas de API subjacentes no Chef - mas do chamada para este método parece que a intenção de adicionar membros a um grupo é esperada para ser apenas um usuário do domínio, não outro grupo local.

    
por 03.03.2016 / 15:02

Tags