Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Group module is not idempotent when gid is specified #29919

Open
ansibot opened this issue Sep 12, 2017 · 9 comments

Comments

@ansibot
Copy link
Contributor

commented Sep 12, 2017

From @alvinsw on 2016-01-28T04:43:50Z

ISSUE TYPE
  • Bug Report
COMPONENT NAME

system/group

ANSIBLE VERSION
ansible --version
ansible 2.1.0 (devel 36aa89ac7e) last updated 2016/01/16 16:12:36 (GMT +1000)`
  lib/ansible/modules/core: (detached HEAD fd59dccdd7) last updated 2016/01/16 16:13:06 (GMT +1000)
  lib/ansible/modules/extras: (detached HEAD 38dfe23336) last updated 2016/01/16 16:13:26 (GMT +1000)
CONFIGURATION
OS / ENVIRONMENT
SUMMARY
STEPS TO REPRODUCE

First run this command:
ansible all -i "localhost," -c local -b -m group -a 'gid=3000 name=foo'

Then, running this command:
ansible all -i "localhost," -c local -b -m group -a 'gid=3000 name=bar'
will result in:
localhost | FAILED! => { "changed": false, "failed": true, "msg": "groupadd: GID '3000' already exists\n", "name": "bar" }

The opposite, ie repeated commands with same name but different gid, works. I think this is wrong because the gid should have more priority than the name.

Copied from original issue: ansible/ansible-modules-core#2903

@ansibot

This comment has been minimized.

Copy link
Contributor Author

commented Sep 12, 2017

From @jctanner on 2016-01-28T04:43:50Z

Tested this across all released ansible versions just to confirm and it was never a behavior of the group module to rename a group by gid. It has always failed with a message similar to "groupadd: GID '3000' already exists". As such, I believe this is a feature request instead of a bug.

@ansibot

This comment has been minimized.

Copy link
Contributor Author

commented Sep 12, 2017

From @Yannig on 2016-01-28T04:43:50Z

Cannot reproduce the issue. On my current machine:

ansible all -i "localhost," -c local -b -m group -a 'gid=3000 name=foo'
localhost | SUCCESS => {
    "changed": true, 
    "gid": 3000, 
    "name": "foo", 
    "state": "present", 
    "system": false
}
ansible all -i "localhost," -c local -b -m group -a 'gid=3000 name=foo'
localhost | SUCCESS => {
    "changed": false, 
    "gid": 3000, 
    "name": "foo", 
    "state": "present", 
    "system": false
}

What is your OS ?

@ansibot ansibot added the affects_2.1 label Sep 12, 2017
@ansibot

This comment has been minimized.

Copy link
Contributor Author

commented Sep 12, 2017

From @b3rn on 2016-01-28T04:43:50Z

The way to reproduce the issue is to try and rename an existing group with an existing GID.

e.g. gid=500(dev), trying to get ansible to change that to gid=500(ops) will always fail. I have a patch mostly completed.

@ansibot

This comment has been minimized.

Copy link
Contributor Author

commented Sep 12, 2017

From @b3rn on 2016-01-28T04:43:50Z

The renaming will require a "force" flag, however, to preserve sanity.

@ansibot

This comment has been minimized.

Copy link
Contributor Author

commented Sep 12, 2017

@onorua

This comment has been minimized.

Copy link

commented Sep 19, 2017

state file:

  tasks:
    - name: "Add groups for standard users"
      group:
        name: "hydra"
        gid: "10002"
        state: present

execution:

fatal: [199.115.119.167]: FAILED! => {
    "changed": false,
    "failed": true,
    "invocation": {
        "module_args": {
            "gid": "10002",
            "name": "hydra",
            "state": "present",
            "system": false
        }
    },
    "msg": "groupadd: GID '10002' already exists\n",
    "name": "hydra"
}
	to retry, use: --limit @/Users/onorua/tmp/users.retry

please advice what could we debug output is here:

TASK [Add groups for standard users] *************************************************************************************************************************************************************************************************************************
task path: /Users/onorua/tmp/users.yml:7
Using module file /usr/local/Cellar/ansible/2.3.2.0_1/libexec/lib/python2.7/site-packages/ansible/modules/system/group.py
<199.115.119.167> ESTABLISH SSH CONNECTION FOR USER: ymolochko
<199.115.119.167> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/Users/onorua/.ssh/af_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ymolochko -o ConnectTimeout=10 -o ControlPath=/Users/onorua/.ansible/cp/4d9b1d628a 199.115.119.167 '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''
<199.115.119.167> (0, '/home/ymolochko\n', 'OpenSSH_7.4p1, LibreSSL 2.5.0\r\ndebug1: Reading configuration data /Users/onorua/.ssh/config\r\ndebug1: /Users/onorua/.ssh/config line 23: Applying options for *\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: auto-mux: Trying existing master\r\ndebug1: Control socket "/Users/onorua/.ansible/cp/4d9b1d628a" does not exist\r\ndebug2: resolving "199.115.119.167" port 22\r\ndebug2: ssh_connect_direct: needpriv 0\r\ndebug1: Connecting to 199.115.119.167 [199.115.119.167] port 22.\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug1: fd 3 clearing O_NONBLOCK\r\ndebug1: Connection established.\r\ndebug3: timeout: 9748 ms remain after connect\r\ndebug1: identity file /Users/onorua/.ssh/af_rsa type 1\r\ndebug1: key_load_public: No such file or directory\r\ndebug1: identity file /Users/onorua/.ssh/af_rsa-cert type -1\r\ndebug1: Enabling compatibility mode for protocol 2.0\r\ndebug1: Local version string SSH-2.0-OpenSSH_7.4\r\ndebug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.2\r\ndebug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.2 pat OpenSSH* compat 0x04000000\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug1: Authenticating to 199.115.119.167:22 as \'ymolochko\'\r\ndebug3: hostkeys_foreach: reading file "/Users/onorua/.ssh/known_hosts"\r\ndebug3: record_hostkey: found key type ECDSA in file /Users/onorua/.ssh/known_hosts:3349\r\ndebug3: load_hostkeys: loaded 1 keys from 199.115.119.167\r\ndebug3: order_hostkeyalgs: prefer hostkeyalgs: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521\r\ndebug3: send packet: type 20\r\ndebug1: SSH2_MSG_KEXINIT sent\r\ndebug3: receive packet: type 20\r\ndebug1: SSH2_MSG_KEXINIT received\r\ndebug2: local client KEXINIT proposal\r\ndebug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c\r\ndebug2: host key algorithms: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa\r\ndebug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc\r\ndebug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc\r\ndebug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1\r\ndebug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1\r\ndebug2: compression ctos: zlib@openssh.com,zlib,none\r\ndebug2: compression stoc: zlib@openssh.com,zlib,none\r\ndebug2: languages ctos: \r\ndebug2: languages stoc: \r\ndebug2: first_kex_follows 0 \r\ndebug2: reserved 0 \r\ndebug2: peer server KEXINIT proposal\r\ndebug2: KEX algorithms: curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1\r\ndebug2: host key algorithms: ssh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519\r\ndebug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com\r\ndebug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com\r\ndebug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1\r\ndebug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1\r\ndebug2: compression ctos: none,zlib@openssh.com\r\ndebug2: compression stoc: none,zlib@openssh.com\r\ndebug2: languages ctos: \r\ndebug2: languages stoc: \r\ndebug2: first_kex_follows 0 \r\ndebug2: reserved 0 \r\ndebug1: kex: algorithm: curve25519-sha256@libssh.org\r\ndebug1: kex: host key algorithm: ecdsa-sha2-nistp256\r\ndebug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: zlib@openssh.com\r\ndebug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: zlib@openssh.com\r\ndebug3: send packet: type 30\r\ndebug1: expecting SSH2_MSG_KEX_ECDH_REPLY\r\ndebug3: receive packet: type 31\r\ndebug1: Server host key: ecdsa-sha2-nistp256 SHA256:VyvXd+woaaOeDn/vqe4/ro4CtIKRX7tQ3Zu8rgMm7sM\r\ndebug3: hostkeys_foreach: reading file "/Users/onorua/.ssh/known_hosts"\r\ndebug3: record_hostkey: found key type ECDSA in file /Users/onorua/.ssh/known_hosts:3349\r\ndebug3: load_hostkeys: loaded 1 keys from 199.115.119.167\r\ndebug1: Host \'199.115.119.167\' is known and matches the ECDSA host key.\r\ndebug1: Found key in /Users/onorua/.ssh/known_hosts:3349\r\ndebug3: send packet: type 21\r\ndebug2: set_newkeys: mode 1\r\ndebug1: rekey after 134217728 blocks\r\ndebug1: SSH2_MSG_NEWKEYS sent\r\ndebug1: expecting SSH2_MSG_NEWKEYS\r\ndebug3: receive packet: type 21\r\ndebug1: SSH2_MSG_NEWKEYS received\r\ndebug2: set_newkeys: mode 0\r\ndebug1: rekey after 134217728 blocks\r\ndebug2: key: /Users/onorua/.ssh/af_rsa (0x7fbb6d501870), explicit\r\ndebug3: send packet: type 5\r\ndebug3: receive packet: type 7\r\ndebug1: SSH2_MSG_EXT_INFO received\r\ndebug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>\r\ndebug3: receive packet: type 6\r\ndebug2: service_accept: ssh-userauth\r\ndebug1: SSH2_MSG_SERVICE_ACCEPT received\r\ndebug3: send packet: type 50\r\ndebug3: receive packet: type 51\r\ndebug1: Authentications that can continue: publickey\r\ndebug3: start over, passed a different list publickey\r\ndebug3: preferred gssapi-with-mic,gssapi-keyex,hostbased,publickey\r\ndebug3: authmethod_lookup publickey\r\ndebug3: remaining preferred: ,gssapi-keyex,hostbased,publickey\r\ndebug3: authmethod_is_enabled publickey\r\ndebug1: Next authentication method: publickey\r\ndebug1: Offering RSA public key: /Users/onorua/.ssh/af_rsa\r\ndebug3: send_pubkey_test\r\ndebug3: send packet: type 50\r\ndebug2: we sent a publickey packet, wait for reply\r\ndebug3: receive packet: type 60\r\ndebug1: Server accepts key: pkalg rsa-sha2-512 blen 535\r\ndebug2: input_userauth_pk_ok: fp SHA256:coaLp12JT1ojfH6RR9KE2iAIKwUiIZDP48tu184PfBo\r\ndebug3: sign_and_send_pubkey: RSA SHA256:coaLp12JT1ojfH6RR9KE2iAIKwUiIZDP48tu184PfBo\r\ndebug3: send packet: type 50\r\ndebug3: receive packet: type 52\r\ndebug1: Enabling compression at level 6.\r\ndebug1: Authentication succeeded (publickey).\r\nAuthenticated to 199.115.119.167 ([199.115.119.167]:22).\r\ndebug1: setting up multiplex master socket\r\ndebug3: muxserver_listen: temporary control path /Users/onorua/.ansible/cp/4d9b1d628a.gsfwAYHm9HSKrpiY\r\ndebug2: fd 4 setting O_NONBLOCK\r\ndebug3: fd 4 is O_NONBLOCK\r\ndebug3: fd 4 is O_NONBLOCK\r\ndebug1: channel 0: new [/Users/onorua/.ansible/cp/4d9b1d628a]\r\ndebug3: muxserver_listen: mux listener channel 0 fd 4\r\ndebug2: fd 3 setting TCP_NODELAY\r\ndebug3: ssh_packet_set_tos: set IP_TOS 0x08\r\ndebug1: control_persist_detach: backgrounding master process\r\ndebug2: control_persist_detach: background process is 67814\r\ndebug2: fd 4 setting O_NONBLOCK\r\ndebug1: forking to background\r\ndebug1: Entering interactive session.\r\ndebug1: pledge: id\r\ndebug2: set_control_persist_exit_time: schedule exit in 60 seconds\r\ndebug1: multiplexing control connection\r\ndebug3: fd 5 is O_NONBLOCK\r\ndebug3: fd 5 is O_NONBLOCK\r\ndebug1: channel 1: new [mux-control]\r\ndebug3: channel_post_mux_listener: new mux channel 1 fd 5\r\ndebug3: mux_master_read_cb: channel 1: hello sent\r\ndebug2: set_control_persist_exit_time: cancel scheduled exit\r\ndebug3: mux_master_read_cb: channel 1 packet type 0x00000001 len 4\r\ndebug2: process_mux_master_hello: channel 1 slave version 4\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_master_read_cb: channel 1 packet type 0x10000004 len 4\r\ndebug2: process_mux_alive_check: channel 1: alive check\r\ndebug3: mux_client_request_alive: done pid = 67816\r\ndebug3: mux_master_read_cb: channel 1 packet type 0x10000002 len 80\r\ndebug2: process_mux_new_session: channel 1: request tty 0, X 0, agent 0, subsys 0, term "xterm-256color", cmd "/bin/sh -c \'echo ~ && sleep 0\'", env 0\r\ndebug3: mux_client_request_session: session request sent\r\ndebug3: process_mux_new_session: got fds stdin 6, stdout 7, stderr 8\r\ndebug2: fd 7 setting O_NONBLOCK\r\ndebug2: fd 8 setting O_NONBLOCK\r\ndebug1: channel 2: new [client-session]\r\ndebug2: process_mux_new_session: channel_new: 2 linked to control channel 1\r\ndebug2: channel 2: send open\r\ndebug3: send packet: type 90\r\ndebug3: receive packet: type 80\r\ndebug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0\r\ndebug3: receive packet: type 91\r\ndebug2: callback start\r\ndebug2: client_session2_setup: id 2\r\ndebug1: Sending command: /bin/sh -c \'echo ~ && sleep 0\'\r\ndebug2: channel 2: request exec confirm 1\r\ndebug3: send packet: type 98\r\ndebug3: mux_session_confirm: sending success reply\r\ndebug2: callback done\r\ndebug2: channel 2: open confirm rwindow 0 rmax 32768\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug2: channel 2: rcvd adjust 2097152\r\ndebug3: receive packet: type 99\r\ndebug2: channel_input_status_confirm: type 99 id 2\r\ndebug2: exec request accepted on channel 2\r\ndebug3: receive packet: type 96\r\ndebug2: channel 2: rcvd eof\r\ndebug2: channel 2: output open -> drain\r\ndebug2: channel 2: obuf empty\r\ndebug2: channel 2: close_write\r\ndebug2: channel 2: output drain -> closed\r\ndebug3: receive packet: type 98\r\ndebug1: client_input_channel_req: channel 2 rtype exit-status reply 0\r\ndebug3: mux_exit_message: channel 2: exit message, exitval 0\r\ndebug3: receive packet: type 98\r\ndebug1: client_input_channel_req: channel 2 rtype eow@openssh.com reply 0\r\ndebug2: channel 2: rcvd eow\r\ndebug2: channel 2: close_read\r\ndebug2: channel 2: input open -> closed\r\ndebug3: receive packet: type 97\r\ndebug2: channel 2: rcvd close\r\ndebug3: channel 2: will not send data after close\r\ndebug2: channel 2: send close\r\ndebug3: send packet: type 97\r\ndebug2: channel 2: is dead\r\ndebug2: channel 2: gc: notify user\r\ndebug3: mux_master_session_cleanup_cb: entering for channel 2\r\ndebug2: channel 1: rcvd close\r\ndebug2: channel 1: output open -> drain\r\ndebug2: channel 1: close_read\r\ndebug2: channel 1: input open -> closed\r\ndebug2: channel 2: gc: user detached\r\ndebug2: channel 2: is dead\r\ndebug2: channel 2: garbage collecting\r\ndebug1: channel 2: free: client-session, nchannels 3\r\ndebug3: channel 2: status: The following connections are open:\r\n  #1 mux-control (t16 r-1 i3/0 o1/16 fd 5/5 cc -1)\r\n  #2 client-session (t4 r0 i3/0 o3/0 fd -1/-1 cc -1)\r\n\r\ndebug2: channel 1: obuf empty\r\ndebug2: channel 1: close_write\r\ndebug2: channel 1: output drain -> closed\r\ndebug2: channel 1: is dead (local)\r\ndebug2: channel 1: gc: notify user\r\ndebug3: mux_master_control_cleanup_cb: entering for channel 1\r\ndebug2: channel 1: gc: user detached\r\ndebug2: channel 1: is dead (local)\r\ndebug2: channel 1: garbage collecting\r\ndebug1: channel 1: free: mux-control, nchannels 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug3: channel 1: status: The following connections are open:\r\n  #1 mux-control (t16 r-1 i3/0 o3/0 fd 5/5 cc -1)\r\n\r\ndebug2: set_control_persist_exit_time: schedule exit in 60 seconds\r\ndebug2: Received exit status from master 0\r\n')
<199.115.119.167> ESTABLISH SSH CONNECTION FOR USER: ymolochko
<199.115.119.167> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/Users/onorua/.ssh/af_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ymolochko -o ConnectTimeout=10 -o ControlPath=/Users/onorua/.ansible/cp/4d9b1d628a 199.115.119.167 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /home/ymolochko/.ansible/tmp/ansible-tmp-1505840454.3-245000268924149 `" && echo ansible-tmp-1505840454.3-245000268924149="` echo /home/ymolochko/.ansible/tmp/ansible-tmp-1505840454.3-245000268924149 `" ) && sleep 0'"'"''
<199.115.119.167> (0, 'ansible-tmp-1505840454.3-245000268924149=/home/ymolochko/.ansible/tmp/ansible-tmp-1505840454.3-245000268924149\n', 'OpenSSH_7.4p1, LibreSSL 2.5.0\r\ndebug1: Reading configuration data /Users/onorua/.ssh/config\r\ndebug1: /Users/onorua/.ssh/config line 23: Applying options for *\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 67816\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')
<199.115.119.167> PUT /var/folders/c2/zdcpr0gs1c17gjqg8krtb1kr0000gn/T/tmp_sE6dx TO /home/ymolochko/.ansible/tmp/ansible-tmp-1505840454.3-245000268924149/group.py
<199.115.119.167> SSH: EXEC sftp -b - -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/Users/onorua/.ssh/af_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ymolochko -o ConnectTimeout=10 -o ControlPath=/Users/onorua/.ansible/cp/4d9b1d628a '[199.115.119.167]'
<199.115.119.167> (0, 'sftp> put /var/folders/c2/zdcpr0gs1c17gjqg8krtb1kr0000gn/T/tmp_sE6dx /home/ymolochko/.ansible/tmp/ansible-tmp-1505840454.3-245000268924149/group.py\n', 'OpenSSH_7.4p1, LibreSSL 2.5.0\r\ndebug1: Reading configuration data /Users/onorua/.ssh/config\r\ndebug1: /Users/onorua/.ssh/config line 23: Applying options for *\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 67816\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug2: Remote version: 3\r\ndebug2: Server supports extension "posix-rename@openssh.com" revision 1\r\ndebug2: Server supports extension "statvfs@openssh.com" revision 2\r\ndebug2: Server supports extension "fstatvfs@openssh.com" revision 2\r\ndebug2: Server supports extension "hardlink@openssh.com" revision 1\r\ndebug2: Server supports extension "fsync@openssh.com" revision 1\r\ndebug3: Sent message fd 8 T:16 I:1\r\ndebug3: SSH_FXP_REALPATH . -> /home/ymolochko size 0\r\ndebug3: Looking up /var/folders/c2/zdcpr0gs1c17gjqg8krtb1kr0000gn/T/tmp_sE6dx\r\ndebug3: Sent message fd 8 T:17 I:2\r\ndebug3: Received stat reply T:101 I:2\r\ndebug1: Couldn\'t stat remote file: No such file or directory\r\ndebug3: Sent message SSH2_FXP_OPEN I:3 P:/home/ymolochko/.ansible/tmp/ansible-tmp-1505840454.3-245000268924149/group.py\r\ndebug3: Sent message SSH2_FXP_WRITE I:4 O:0 S:32768\r\ndebug3: SSH2_FXP_STATUS 0\r\ndebug3: In write loop, ack for 4 32768 bytes at 0\r\ndebug3: Sent message SSH2_FXP_WRITE I:5 O:32768 S:25644\r\ndebug3: SSH2_FXP_STATUS 0\r\ndebug3: In write loop, ack for 5 25644 bytes at 32768\r\ndebug3: Sent message SSH2_FXP_CLOSE I:4\r\ndebug3: SSH2_FXP_STATUS 0\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')
<199.115.119.167> ESTABLISH SSH CONNECTION FOR USER: ymolochko
<199.115.119.167> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/Users/onorua/.ssh/af_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ymolochko -o ConnectTimeout=10 -o ControlPath=/Users/onorua/.ansible/cp/4d9b1d628a 199.115.119.167 '/bin/sh -c '"'"'chmod u+x /home/ymolochko/.ansible/tmp/ansible-tmp-1505840454.3-245000268924149/ /home/ymolochko/.ansible/tmp/ansible-tmp-1505840454.3-245000268924149/group.py && sleep 0'"'"''
<199.115.119.167> (0, '', 'OpenSSH_7.4p1, LibreSSL 2.5.0\r\ndebug1: Reading configuration data /Users/onorua/.ssh/config\r\ndebug1: /Users/onorua/.ssh/config line 23: Applying options for *\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 67816\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')
<199.115.119.167> ESTABLISH SSH CONNECTION FOR USER: ymolochko
<199.115.119.167> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/Users/onorua/.ssh/af_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ymolochko -o ConnectTimeout=10 -o ControlPath=/Users/onorua/.ansible/cp/4d9b1d628a -tt 199.115.119.167 '/bin/sh -c '"'"'sudo -H -S -n -u root /bin/sh -c '"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-rgnlzhprzhcudcixduymnaytrfbkcigo; /usr/bin/python /home/ymolochko/.ansible/tmp/ansible-tmp-1505840454.3-245000268924149/group.py; rm -rf "/home/ymolochko/.ansible/tmp/ansible-tmp-1505840454.3-245000268924149/" > /dev/null 2>&1'"'"'"'"'"'"'"'"' && sleep 0'"'"''
<199.115.119.167> (0, '\r\n{"msg": "groupadd: GID \'10002\' already exists\\n", "failed": true, "name": "hydra", "invocation": {"module_args": {"state": "present", "gid": "10002", "name": "hydra", "system": false}}}\r\n', 'OpenSSH_7.4p1, LibreSSL 2.5.0\r\ndebug1: Reading configuration data /Users/onorua/.ssh/config\r\ndebug1: /Users/onorua/.ssh/config line 23: Applying options for *\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 67816\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\nShared connection to 199.115.119.167 closed.\r\n')
fatal: [199.115.119.167]: FAILED! => {
    "changed": false,
    "failed": true,
    "invocation": {
        "module_args": {
            "gid": "10002",
            "name": "hydra",
            "state": "present",
            "system": false
        }
    },
    "msg": "groupadd: GID '10002' already exists\n",
    "name": "hydra"
}
	to retry, use: --limit @/Users/onorua/tmp/users.retry
@comburo

This comment has been minimized.

Copy link

commented Oct 19, 2017

I'm having the exact same issue. Adding a group that already exists through the group module results in a failure.

fatal: [xxx]: FAILED! => {
    "changed": false, 
    "failed": true, 
    "invocation": {
        "module_args": {
            "gid": "30003", 
            "name": "apps", 
            "state": "present", 
            "system": false
        }
    }, 
    "msg": "groupadd: GID '30003' already exists\n", 
    "name": "apps"
}

The offending line in the playbook is:

- name: Add group "{{ application_group }}"
  group: name={{ application_group }} gid={{ application_group_gid }} state=present
@onorua

This comment has been minimized.

Copy link

commented Oct 20, 2017

make sure UID you are trying to assign is not taken by other user in the system.

@comburo

This comment has been minimized.

Copy link

commented Oct 20, 2017

Yeah...I was so focussed on the GID that I never noticed the group name was actually different. So stupid. But it's not a problem with Ansible. Typical PEBKAC.

So an improvement suggestion: In this case, mention the group names are different for the same GID and that's the reason it can't be created :-)

@ansibot ansibot added the bug label Mar 2, 2018
@ansibot ansibot added the system label Feb 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.