blob: 0544ae642ef95dd58a0580e5e905bb96273f87af [file] [log] [blame]
Dennis Dmitriev7b9538f2017-05-15 17:01:34 +03001| # All the data below will be stored as a string object
2 #cloud-config, see http://cloudinit.readthedocs.io/en/latest/topics/examples.html
3
4 ssh_pwauth: True
5 users:
6 - name: root
7 sudo: ALL=(ALL) NOPASSWD:ALL
8 shell: /bin/bash
9 ssh_authorized_keys:
10 - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
11
12 disable_root: false
13 chpasswd:
14 list: |
15 root:r00tme
16 expire: False
17
18 bootcmd:
19 # Block access to SSH while node is preparing
20 - cloud-init-per once sudo iptables -A INPUT -p tcp --dport 22 -j DROP
21 # Enable root access
22 - sed -i -e '/^PermitRootLogin/s/^.*$/PermitRootLogin yes/' /etc/ssh/sshd_config
23 - service sshd restart
24 output:
25 all: '| tee -a /var/log/cloud-init-output.log /dev/tty0'
26
27 runcmd:
28 # Configure dhclient
29 - sudo echo "nameserver {gateway}" >> /etc/resolvconf/resolv.conf.d/base
30 - sudo resolvconf -u
31
32 # Prepare network connection
33 - sudo ifup ens3
34 #- sudo route add default gw {gateway} {interface_name}
35 - sudo ifup ens4
36
37 # Create swap
38 - fallocate -l 4G /swapfile
39 - chmod 600 /swapfile
40 - mkswap /swapfile
41 - swapon /swapfile
42 - echo "/swapfile none swap defaults 0 0" >> /etc/fstab
43
44 ############## TCP Cloud cfg01 node ##################
45 #- sleep 120
46 - echo "Preparing base OS"
47
48 - echo "172.18.248.114 jenkins.mcp.mirantis.net gerrit.mcp.mirantis.net" >> /etc/hosts;
49 - echo "185.135.196.10 apt-mk.mirantis.com" >> /etc/hosts;
50 - echo "nameserver 172.18.208.44 >> /etc/resolv.conf;
51 - echo "nameserver 8.8.8.8 >> /etc/resolv.conf;
52 - which wget >/dev/null || (apt-get update; apt-get install -y wget);
Dennis Dmitriev620e26d2017-05-25 18:28:44 +030053 - apt-get install -y ntp
Dennis Dmitriev7b9538f2017-05-15 17:01:34 +030054
55 - export IRONIC_PXE_MANAGER=dnsmasq
56 - export IRONIC_PXE_INTERFACE_NAME=ens4
Dennis Dmitrievcacce7d2017-05-26 22:28:22 +030057 - export IRONIC_PXE_INTERFACE_ADDRESS={{ os_env('IRONIC_PXE_INTERFACE_ADDRESS', '10.0.175.2') }}
Dennis Dmitriev6dd3db72017-05-26 22:32:18 +030058 - export IRONIC_DHCP_POOL_NETMASK={{ os_env('IRONIC_DHCP_POOL_NETMASK', '255.255.255.0') }}
59 - export IRONIC_DHCP_POOL_NETMASK_PREFIX={{ os_env('IRONIC_DHCP_POOL_NETMASK_PREFIX', '24') }}
Dennis Dmitrievcacce7d2017-05-26 22:28:22 +030060 - export IRONIC_DHCP_POOL_START={{ os_env('IRONIC_DHCP_POOL_START', '10.0.175.100') }}
61 - export IRONIC_DHCP_POOL_END={{ os_env('IRONIC_DHCP_POOL_END', '10.0.175.200') }}
Dennis Dmitriev7b9538f2017-05-15 17:01:34 +030062 - export DNSMASQ_USE_EXTERNAL_DNS=true
63 - ip a a $IRONIC_PXE_INTERFACE_ADDRESS/$IRONIC_DHCP_POOL_NETMASK_PREFIX dev $IRONIC_PXE_INTERFACE_NAME
64 - curl https://raw.githubusercontent.com/dis-xcom/underpillar/master/bootstrap.sh -o ./bootstrap.sh && bash ./bootstrap.sh
65
66 - echo "Building ironic agent image (stable/newton) ..."
67 - apt-get install -y docker.io gzip uuid-runtime cpio findutils grep gnupg make
68 - service docker start
69 - git clone https://git.openstack.org/openstack/ironic-python-agent /tmp/ironic-python-agent
70 - cd /tmp/ironic-python-agent/imagebuild/coreos; git checkout stable/newton; make
71 - cp /tmp/ironic-python-agent/imagebuild/coreos/UPLOAD/coreos_production_pxe_image-oem.cpio.gz /httpboot/
72 - cp /tmp/ironic-python-agent/imagebuild/coreos/UPLOAD/coreos_production_pxe.vmlinuz /httpboot/
73 - chmod a+r /httpboot/coreos_production_pxe*
74
75 - echo "Download ubuntu cloudinit image"
76 - wget https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img -O /httpboot/xenial-server-cloudimg-amd64.qcow2
77
78 ########################################################
79 # Node is ready, allow SSH access
80 - echo "Allow SSH access ..."
81 - sudo iptables -D INPUT -p tcp --dport 22 -j DROP
82 ########################################################
83
84 write_files:
85 - path: /etc/network/interfaces
86 content: |
87 auto ens3
88 iface ens3 inet dhcp
89 auto ens4
90 iface ens4 inet manual
91
92 - path: /root/.ssh/id_rsa
93 owner: root:root
94 permissions: '0600'
95 content: |
96 -----BEGIN RSA PRIVATE KEY-----
97 MIIEogIBAAKCAQEAqdHr4zmivHPEimCuK9vtATe4PvGEr0Np/JxYDlEQsr5Cajh4
98 tajxmZrjdAnJWFXVbmYl21sN1cUW0ltxB+9+lc4GNVNCZqE4kmpsyx2lrF7xCFvF
99 Qou26JYud/UCT9IpCYgWjQIGSC8gq1TzfgOpn6rWnLNSl3WdM5TKtQT7RXIkdSUw
100 kXFbObz9lsM+ULWNozCId2osJHj4zE0D3H5odU5DpcWLuSG0MmdxtWoQNJjSiPWt
101 HbRdvNmr/xeqcAfzdUdZxGf/VbXDdiNZn9TVv7UxxBHE812KNUf/Cvb5agDfEL7x
102 i2bWXbhr4jVTaDVr6MWl8Q7fAj79gdjQnUBWaQIDAQABAoIBAFU3kU6yIna9BViH
103 UX+S2ijtRBjZ68JjavEnp4xvo5h+nydcdT57q9lv/0nAi3g3gmXm/oJH+/ZU87HV
104 zy+zP+t+umDSChUkPBZFL5jxpKyN7BhMrP1KzRuEGYd6vJE/nfY5g095P5vDgnpX
105 o+SNg/YqrY1u8zgr/hnfRaV2/XyIDEEcQXTHseWTnnMQnULFU88xL8yq8ACT5GhK
106 7A9m5ukfcU6d/fs/psz5Yqw5IQsWbv1yJ3/FKufPHlo2Nzh3/3eDAZUXvaBgf1so
107 FWFpHtkry3OXOGaZ98HgF9hL0twS0pzMvuypdGUQAt6nyB1N5re4LK/MAOddqwEc
108 1+NQzfECgYEA2ryEf0GLJdtiYs3F4HbwTwJVIXdyWv7kjYGeMkutzzAjXl6wx8aq
109 kfqLJ7x7UkR5unZ1ajEbKBciAlSuFA+Gikn6a4Lv8h87aSnHpPd/2VSitRlI/gW7
110 w4U4CL3Br1JyonU5WA7VYfTow7KnHBhdwm27RMA9uosyIpveQRpqSG0CgYEAxsAS
111 wCQKrhuPq2YtGtFR7K4BL+N+0E1Vq6h49u1ukcgUe0GHVD3VzBypNCv7rWEVHzAg
112 biCVi7PCjzZYW4fYZmzVD4JbFLVGOUu7aJwLaE4wDe72DNr6YZhcS+Ta98BP+x0q
113 Wt34JNPDabRPfhXfhiCqnWjjod+4Zqx4VJVNgG0CgYB5EXL8xJhyAbW5Hk/x56Mm
114 +BGKjoR7HS3/rMiU6hJv5SMObrbGPI3YcqZm/gn8BO6jaEGg30E6tWMbiyc270j2
115 be/vZe/NQcAuevOHuX3IGvJb7nzaLO46UBgtrmnv0mCkzuFIfh1ZNKdI+i9Ie6wZ
116 m4bVjNod0EGVqlQgELDXGQKBgB+NNmzSS++/6FrpaZesSzkrlnynvOYMoOETacCp
117 iLgT70xx5q308w/oLORfZyDrHJNK7JsPCS6YZvadRgGh2zTHajuAEj2DWZaW8zV0
118 MEtqvi44FU+NI9qCeYSC3FAgc5IF20d5nX8bLxaEzWnSxx1f6jX7BMgZ4AhMsP2c
119 hiUxAoGAFaxn+t9blIjqUiuh0smSYFhLBVPZveYHQDmQYERjktptBd3X95fGnSKh
120 iDe2iPGyud2+Yu4X/VjHLh/MRru+ZXvPXw1XwEqX93q8a1n283ul0Rl9+KKKOVHR
121 eecTjI/BfXBf33mPRKny3xuHw6uwta2T3OXky9IhqYS1kkHiZWA=
122 -----END RSA PRIVATE KEY-----
123
124 - path: /root/.ssh/config
125 owner: root:root
126 permissions: '0600'
127 content: |
128 Host *
129 ServerAliveInterval 300
130 ServerAliveCountMax 10
131 StrictHostKeyChecking no
132 UserKnownHostsFile /dev/null