'centos-6.5': 'http://cloud.centos.org/centos/6/images/CentOS-6-x86_64-GenericCloud.qcow2',
'centos-7.0': 'http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-20150628_01.qcow2',
'ubuntu-14.04': 'https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img',
+ 'debian-8.0': 'http://cdimage.debian.org/cdimage/openstack/current/debian-8.1.0-openstack-amd64.qcow2',
}
def __init__(self):
log.debug('cloud_init_wait connect socket.error ' + str(e))
continue
except Exception as e:
- if 'Unknown server' not in str(e):
- log.exception('cloud_init_wait ' + name_or_ip)
- if 'Unknown server' in str(e):
- continue
- else:
- raise e
+ transients = ('Incompatible ssh peer', 'Unknown server')
+ for transient in transients:
+ if transient in str(e):
+ continue
+ log.exception('cloud_init_wait ' + name_or_ip)
+ raise
log.debug('cloud_init_wait ' + all_done)
try:
stdin, stdout, stderr = client.exec_command(all_done)
--- /dev/null
+#cloud-config
+bootcmd:
+ - apt-get remove --purge -y resolvconf || true
+ - echo 'prepend domain-name-servers {nameserver};' | sudo tee -a /etc/dhcp/dhclient.conf
+ - echo 'supersede domain-name "{lab_domain}";' | sudo tee -a /etc/dhcp/dhclient.conf
+ - ifdown eth0 ; ifup eth0
+ - ( wget -q -O - http://169.254.169.254/2009-04-04/meta-data/hostname | sed -e 's/[\.-].*//' ; eval printf "%03d%03d.{lab_domain}" $(wget -q -O - http://169.254.169.254/2009-04-04/meta-data/local-ipv4 | sed -e 's/.*\.\(.*\)\.\(.*\)/\1 \2/') ) | tee /etc/hostname
+ - hostname $(cat /etc/hostname)
+ - echo "MaxSessions 1000" >> /etc/ssh/sshd_config
+preserve_hostname: true
+system_info:
+ default_user:
+ name: {username}
+packages:
+ - python
+ - wget
+ - git
+ - ntp
+runcmd:
+# See https://github.com/ceph/ceph-cm-ansible/blob/master/roles/cobbler/templates/snippets/cephlab_user
+ - ( echo 'Defaults !requiretty' ; echo 'Defaults visiblepw' ) | tee /etc/sudoers.d/cephlab_sudo ; chmod 0440 /etc/sudoers.d/cephlab_sudo
+ - echo '{username} ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
+final_message: "{up}, after $UPTIME seconds"