vultr_server: fix multiple ssh keys not handled (#50337)
* vultr_server: fix multiple ssh keys not handled
* add changelog fragment
(cherry picked from commit e761ea3f9d
)
This commit is contained in:
parent
44248c0ba2
commit
aeb9b9d37f
4 changed files with 50 additions and 8 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- vultr_server - fixed multiple ssh keys were not handled.
|
|
@ -99,6 +99,9 @@ EXAMPLES = '''
|
||||||
name: "{{ vultr_server_name }}"
|
name: "{{ vultr_server_name }}"
|
||||||
os: CentOS 7 x64
|
os: CentOS 7 x64
|
||||||
plan: 1024 MB RAM,25 GB SSD,1.00 TB BW
|
plan: 1024 MB RAM,25 GB SSD,1.00 TB BW
|
||||||
|
ssh_keys:
|
||||||
|
- my_key
|
||||||
|
- your_key
|
||||||
region: Amsterdam
|
region: Amsterdam
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
|
@ -108,6 +111,7 @@ EXAMPLES = '''
|
||||||
name: "{{ vultr_server_name }}"
|
name: "{{ vultr_server_name }}"
|
||||||
os: CentOS 7 x64
|
os: CentOS 7 x64
|
||||||
plan: 1024 MB RAM,25 GB SSD,1.00 TB BW
|
plan: 1024 MB RAM,25 GB SSD,1.00 TB BW
|
||||||
|
ssh_key: my_key
|
||||||
region: Amsterdam
|
region: Amsterdam
|
||||||
state: started
|
state: started
|
||||||
|
|
||||||
|
@ -382,13 +386,22 @@ class AnsibleVultrServer(Vultr):
|
||||||
use_cache=True
|
use_cache=True
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_ssh_key(self):
|
def get_ssh_keys(self):
|
||||||
return self.query_resource_by_key(
|
ssh_key_names = self.module.params.get('ssh_keys')
|
||||||
key='name',
|
if not ssh_key_names:
|
||||||
value=self.module.params.get('ssh_key'),
|
return []
|
||||||
resource='sshkey',
|
|
||||||
use_cache=True
|
ssh_keys = []
|
||||||
)
|
for ssh_key_name in ssh_key_names:
|
||||||
|
ssh_key = self.query_resource_by_key(
|
||||||
|
key='name',
|
||||||
|
value=ssh_key_name,
|
||||||
|
resource='sshkey',
|
||||||
|
use_cache=True
|
||||||
|
)
|
||||||
|
if ssh_key:
|
||||||
|
ssh_keys.append(ssh_key)
|
||||||
|
return ssh_keys
|
||||||
|
|
||||||
def get_region(self):
|
def get_region(self):
|
||||||
return self.query_resource_by_key(
|
return self.query_resource_by_key(
|
||||||
|
@ -488,7 +501,7 @@ class AnsibleVultrServer(Vultr):
|
||||||
'OSID': self.get_os().get('OSID'),
|
'OSID': self.get_os().get('OSID'),
|
||||||
'label': self.module.params.get('name'),
|
'label': self.module.params.get('name'),
|
||||||
'hostname': self.module.params.get('hostname'),
|
'hostname': self.module.params.get('hostname'),
|
||||||
'SSHKEYID': self.get_ssh_key().get('SSHKEYID'),
|
'SSHKEYID': ','.join([ssh_key['SSHKEYID'] for ssh_key in self.get_ssh_keys()]),
|
||||||
'enable_ipv6': self.get_yes_or_no('ipv6_enabled'),
|
'enable_ipv6': self.get_yes_or_no('ipv6_enabled'),
|
||||||
'enable_private_network': self.get_yes_or_no('private_network_enabled'),
|
'enable_private_network': self.get_yes_or_no('private_network_enabled'),
|
||||||
'auto_backups': self.get_yes_or_no('auto_backup_enabled'),
|
'auto_backups': self.get_yes_or_no('auto_backup_enabled'),
|
||||||
|
|
|
@ -2,3 +2,8 @@
|
||||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
---
|
---
|
||||||
vultr_server_name: ansible-test-vm1
|
vultr_server_name: ansible-test-vm1
|
||||||
|
vultr_server_ssh_keys:
|
||||||
|
- name: key1
|
||||||
|
key: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAyWYItY+3w5b8PdGRoz0oY5mufqydW96naE+VM3JSvJFAUS08rAjQQpQ03ymoALeHQy6JVZbcgecxn6p0pAOINQdqufn4udPtOPCtMjNiPGpkSM9ah/6X5+kvyWMNrvlf+Ld4OOoszP5sAkgQzIbrFQAm41XknBUha0zkewZwfrVhain4pnDjV7wCcChId/Q/Gbi4xMtXkisznWcAJcueBs3EEZDKhJ5q0VeWSJEhYJDLFN1sOxF0AIUnMrOhfKQ/LjgREXPB6uCl899INUTXRNNjRpeMXyJ2wMMmOAbua2qEd1r13Bu1n+6A823Hzb33fyMXuqWnJwBJ4DCvMlGuEsfuOK+xk7DaBfLHbcM6fsPk0/4psTE6YLgC41remr6+u5ZWsY/faMtSnNPie8Z8Ov0DIYGdhbJjUXk1HomxRV9+ZfZ2Ob8iCwlaAQAyEUM6fs3Kxt8pBD8dx1HOkhsfBWPvuDr5y+kqE7H8/MuPDTc0QgH2pjUMpmw/XBwNDHshVEjrZvtICOjOLUJxcowLO1ivNYwPwowQxfisMy56LfYdjsOslBiqsrkAqvNGm1zu8wKHeqVN9w5l3yUELpvubfm9NKIvYcl6yWF36T0c5vE+g0DU/Jy4XpTj0hZG9QV2mRQcLJnd2pxQtJT7cPFtrn/+tgRxzjEtbDXummDV4sE= mail@renemoser.net"
|
||||||
|
- name: key2
|
||||||
|
key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoQ9S7V+CufAgwoehnf2TqsJ9LTsu8pUA3FgpS2mdVwcMcTs++8P5sQcXHLtDmNLpWN4k7NQgxaY1oXy5e25x/4VhXaJXWEt3luSw+Phv/PB2+aGLvqCUirsLTAD2r7ieMhd/pcVf/HlhNUQgnO1mupdbDyqZoGD/uCcJiYav8i/V7nJWJouHA8yq31XS2yqXp9m3VC7UZZHzUsVJA9Us5YqF0hKYeaGruIHR2bwoDF9ZFMss5t6/pzxMljU/ccYwvvRDdI7WX4o4+zLuZ6RWvsU6LGbbb0pQdB72tlV41fSefwFsk4JRdKbyV3Xjf25pV4IXOTcqhy+4JTB/jXxrF torwalds@github.com"
|
||||||
|
|
|
@ -37,11 +37,20 @@
|
||||||
- result is failed
|
- result is failed
|
||||||
- 'result.msg == "missing required arguments: os, plan, region"'
|
- 'result.msg == "missing required arguments: os, plan, region"'
|
||||||
|
|
||||||
|
- name: setup create ssh keys
|
||||||
|
vultr_ssh_key:
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
ssh_key: "{{ item.key }}"
|
||||||
|
loop: "{{ vultr_server_ssh_keys }}"
|
||||||
|
|
||||||
- name: test create server in check mode
|
- name: test create server in check mode
|
||||||
vultr_server:
|
vultr_server:
|
||||||
name: "{{ vultr_server_name }}"
|
name: "{{ vultr_server_name }}"
|
||||||
os: CentOS 6 x64
|
os: CentOS 6 x64
|
||||||
plan: 1024 MB RAM,25 GB SSD,1.00 TB BW
|
plan: 1024 MB RAM,25 GB SSD,1.00 TB BW
|
||||||
|
ssh_keys:
|
||||||
|
- key1
|
||||||
|
- key2
|
||||||
region: Amsterdam
|
region: Amsterdam
|
||||||
state: started
|
state: started
|
||||||
register: result
|
register: result
|
||||||
|
@ -56,6 +65,9 @@
|
||||||
name: "{{ vultr_server_name }}"
|
name: "{{ vultr_server_name }}"
|
||||||
os: CentOS 6 x64
|
os: CentOS 6 x64
|
||||||
plan: 1024 MB RAM,25 GB SSD,1.00 TB BW
|
plan: 1024 MB RAM,25 GB SSD,1.00 TB BW
|
||||||
|
ssh_keys:
|
||||||
|
- key1
|
||||||
|
- key2
|
||||||
region: Amsterdam
|
region: Amsterdam
|
||||||
state: started
|
state: started
|
||||||
register: result
|
register: result
|
||||||
|
@ -74,6 +86,9 @@
|
||||||
name: "{{ vultr_server_name }}"
|
name: "{{ vultr_server_name }}"
|
||||||
os: CentOS 6 x64
|
os: CentOS 6 x64
|
||||||
plan: 1024 MB RAM,25 GB SSD,1.00 TB BW
|
plan: 1024 MB RAM,25 GB SSD,1.00 TB BW
|
||||||
|
ssh_keys:
|
||||||
|
- key1
|
||||||
|
- key2
|
||||||
region: Amsterdam
|
region: Amsterdam
|
||||||
state: started
|
state: started
|
||||||
register: result
|
register: result
|
||||||
|
@ -484,3 +499,10 @@
|
||||||
assert:
|
assert:
|
||||||
that:
|
that:
|
||||||
- result is not changed
|
- result is not changed
|
||||||
|
|
||||||
|
- name: cleanup ssh keys
|
||||||
|
vultr_ssh_key:
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
ssh_key: "{{ item.key }}"
|
||||||
|
state: absent
|
||||||
|
loop: "{{ vultr_server_ssh_keys }}"
|
||||||
|
|
Loading…
Reference in a new issue