# AWS ec2 attach new security group to instance

**URL:** <https://forum.ansible.com/t/aws-ec2-attach-new-security-group-to-instance/37052>\
**Category:** Ansible Project\
**Tags:** aws\
**Created:** [August 30, 2022, 7:12pm UTC](https://forum.ansible.com/t/aws-ec2-attach-new-security-group-to-instance/37052 "2022-08-30T19:12:58Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Emanuel\_Gonzalez](https://avatars.discourse-cdn.com/v4/letter/e/b3f665/32.png) [@Emanuel\_Gonzalez](https://forum.ansible.com/u/Emanuel_Gonzalez)\
**Post date:** [August 30, 2022, 7:12pm UTC](https://forum.ansible.com/t/aws-ec2-attach-new-security-group-to-instance/37052/1 "2022-08-30T19:12:58Z")

</div>

Hi, i’m creating a new security group, i need attach this to a new ec2 instance, i try, but i see this error:

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ValueError: The following group names are not valid  
: security\_group.group\_id  
fatal: [localhost]: FAILED! =\> {“changed”: false, “module\_stderr”: “Traceback (most recent call last):\n File "/home/emanuel/.ansible/tmp/ansible-  
tmp-1661879588.620161-35930-48435963997212/AnsiballZ\_ec2\_instance.py", line 107, in \n \_ansiballz\_main()\n File "/home/emanuel/.ansibl  
e/tmp/ansible-tmp-1661879588.620161-35930-48435963997212/AnsiballZ\_ec2\_instance.py", line 99, in \_ansiballz\_main\n invoke\_module(zipped\_mod, tem  
p\_path, ANSIBALLZ\_PARAMS)\n File "/home/emanuel/.ansible/tmp/ansible-tmp-1661879588.620161-35930-48435963997212/AnsiballZ\_ec2\_instance.py", line  
47, in invoke\_module\n runpy.run\_module(mod\_name=‘ansible\_collections.amazon.aws.plugins.modules.ec2\_instance’, init\_globals=dict(\_module\_fqn=‘an  
sible\_collections.amazon.aws.plugins.modules.ec2\_instance’, \_modlib\_path=modlib\_path),\n File "/usr/lib/python3.8/runpy.py", line 207, in run\_mod  
ule\n return \_run\_module\_code(code, init\_globals, run\_name, mod\_spec)\n File "/usr/lib/python3.8/runpy.py", line 97, in \_run\_module\_code\n  
\_run\_code(code, mod\_globals, init\_globals,\n File "/usr/lib/python3.8/runpy.py", line 87, in _run\_code\n exec(code, run\_globals)\n File "/tm  
p/ansible\_amazon.aws.ec2\_instance\_payload\_fopvip\_i/ansible\_amazon.aws.ec2\_instance\_payload.zip/ansible\_collections/amazon/aws/plugins/modules/ec2\_in  
stance.py", line 2015, in \n File "/tmp/ansible\_amazon.aws.ec2\_instance\_payload\_fopvip\_i/ansible\_amazon.aws.ec2\_instance\_payload.zip/ansi  
ble\_collections/amazon/aws/plugins/modules/ec2\_instance.py", line 2009, in main\n File "/tmp/ansible\_amazon.aws.ec2\_instance\_payload\_fopvip\_i/ans  
ible\_amazon.aws.ec2\_instance\_payload.zip/ansible\_collections/amazon/aws/plugins/modules/ec2\_instance.py", line 1808, in ensure\_present\n File "/t  
mp/ansible\_amazon.aws.ec2\_instance\_payload\_fopvip\_i/ansible\_amazon.aws.ec2\_instance\_payload.zip/ansible\_collections/amazon/aws/plugins/modules/ec2\_i  
nstance.py", line 1291, in build\_run\_instance\_spec\n File "/tmp/ansible\_amazon.aws.ec2\_instance\_payload\_fopvip\_i/ansible\_amazon.aws.ec2\_instance_  
payload.zip/ansible\_collections/amazon/aws/plugins/modules/ec2\_instance.py", line 1096, in build\_network\_spec\n File "/tmp/ansible\_amazon.aws.ec2  
\_instance\_payload\_fopvip\_i/ansible\_amazon.aws.ec2\_instance\_payload.zip/ansible\_collections/amazon/aws/plugins/modules/ec2\_instance.py", line 1204,  
in discover\_security\_groups\n File "/tmp/ansible\_amazon.aws.ec2\_instance\_payload\_fopvip\_i/ansible\_amazon.aws.ec2\_instance\_payload.zip/ansible\_coll  
ections/amazon/aws/plugins/module\_utils/ec2.py", line 521, in get\_ec2\_security\_group\_ids\_from\_names\nValueError: The following group names are not  
valid: security\_group.group\_id\n”, “module\_stdout”: “”, “msg”: “MODULE FAILURE\nSee stdout/stderr for the exact error”, “rc”: 1}

This is my playbook

- name: Creamos un Grupo de seguridad para la instancia

amazon.aws.ec2\_group:  
name: “front-cargo-new-dev-sg”  
description: “sg instancia front-cargo-new-dev”  
vpc\_id: vpc-xxxxxxxxxxx  
region: us-west-2  
aws\_secret\_key: “{{ ec2\_secret\_key }}”  
aws\_access\_key: “{{ ec2\_access\_key }}”  
register: security\_group

- name: Lanzamos una instancia a partir de la imagen  
amazon.aws.ec2\_instance:  
name: “front-cargo-new-dev.develop”  
aws\_secret\_key: “{{ ec2\_secret\_key }}”  
aws\_access\_key: “{{ ec2\_access\_key }}”  
region: us-west-2  
wait: yes  
key\_name: developer  
instance\_type: t2.medium  
user\_data: |  
#!/bin/bash  
sudo hostnamectl set-hostname front-cargo-new-dev.develop  
image\_id: ami-xxxxxxxxxxxx  
wait: yes  
wait\_timeout: 500  
volumes:
- device\_name: /dev/xvda  
ebs:  
volume\_type: gp3  
volume\_size: 32  
delete\_on\_termination: yes  
vpc\_subnet\_id: subnet-xxxxxxxxx  
network:  
assign\_public\_ip: no  
security\_groups: [security\_group.group\_id, sg-xxxxxxxxxx, sg-xxxxxxxxxxxx]  
tags:  
Enviroment: dev  
count: 1

any helps??

Regards,

---

<div class="post-metadata">

**Author:** ![sivel](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/sivel/32/1198_2.png) [@sivel](https://forum.ansible.com/u/sivel)\
**Post date:** [August 30, 2022, 7:16pm UTC](https://forum.ansible.com/t/aws-ec2-attach-new-security-group-to-instance/37052/2 "2022-08-30T19:16:20Z")

</div>

The problem is that you are not referencing the `security_group` variable, but just passing a string called `security_group.group_id`:

This:

security\_groups: [security\_group.group\_id, sg-xxxxxxxxxx, sg-xxxxxxxxxxxx]

Should instead be:

security\_groups: [‘{{security\_group.group\_id}}’, sg-xxxxxxxxxx, sg-xxxxxxxxxxxx]

---

<div class="post-metadata">

**Author:** ![Emanuel\_Gonzalez](https://avatars.discourse-cdn.com/v4/letter/e/b3f665/32.png) [@Emanuel\_Gonzalez](https://forum.ansible.com/u/Emanuel_Gonzalez)\
**Post date:** [August 30, 2022, 7:27pm UTC](https://forum.ansible.com/t/aws-ec2-attach-new-security-group-to-instance/37052/3 "2022-08-30T19:27:35Z")

</div>

you are right!!

thanks you matt

---

<div class="post-metadata">

**Author:** ![Walter\_Rowe](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/walter_rowe/32/4506_2.png) [@Walter\_Rowe](https://forum.ansible.com/u/Walter_Rowe)\
**Post date:** [August 31, 2022, 11:48am UTC](https://forum.ansible.com/t/aws-ec2-attach-new-security-group-to-instance/37052/4 "2022-08-31T11:48:23Z")

</div>

amazon.aws.ec2\_group:  
name: “front-cargo-new-dev-sg”  
description: “sg instancia front-cargo-new-dev”  
vpc\_id: vpc-xxxxxxxxxxx  
region: us-west-2  
aws\_secret\_key: “{{ ec2\_secret\_key }}”  
aws\_access\_key: “{{ ec2\_access\_key }}”  
register: security\_group

The security\_group variable is registered / set with this task.

You need to look at the module docs for amazon.aws.ec2\_group to see what is the structure of the results. I suspect this is a reference issue. I recommend using a debug: var=security\_group right after this task so you can see the structure of the results. That will help you determine how to reference the group\_id value (which is returned [in the results](https://docs.ansible.com/ansible/latest/collections/amazon/aws/ec2_group_module.html#return-values) - see module docs).

Walter
