| Dennis Dmitriev | 8ed2788 | 2018-01-31 23:23:19 +0200 | [diff] [blame] | 1 | | # 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 |      {% for key in config.underlay.ssh_keys %} | 
 | 11 |       - ssh-rsa {{ key['public'] }} | 
 | 12 |      {% endfor %} | 
 | 13 |  | 
 | 14 |   disable_root: false | 
 | 15 |   chpasswd: | 
 | 16 |    list: | | 
 | 17 |     root:r00tme | 
 | 18 |    expire: False | 
 | 19 |  | 
 | 20 |   bootcmd: | 
| Dennis Dmitriev | cf77780 | 2018-02-14 18:09:55 +0200 | [diff] [blame] | 21 |    #   # Block access to SSH while node is preparing | 
 | 22 |    #   - cloud-init-per once sudo iptables -A INPUT -p tcp --dport 22 -j DROP | 
| Dennis Dmitriev | 8ed2788 | 2018-01-31 23:23:19 +0200 | [diff] [blame] | 23 |    # Enable root access | 
 | 24 |    - sed -i -e '/^PermitRootLogin/s/^.*$/PermitRootLogin yes/' /etc/ssh/sshd_config | 
 | 25 |    - service sshd restart | 
 | 26 |   output: | 
 | 27 |     all: '| tee -a /var/log/cloud-init-output.log /dev/tty0' | 
 | 28 |  | 
 | 29 |   runcmd: | 
| Dennis Dmitriev | 752c1bf | 2018-12-19 13:05:16 +0200 | [diff] [blame] | 30 |    - if lvs vg0; then pvresize /dev/vda3; fi | 
 | 31 |    - if lvs vg0; then /usr/bin/growlvm.py --image-layout-file /usr/share/growlvm/image-layout.yml; fi | 
 | 32 |  | 
| Dennis Dmitriev | 8ed2788 | 2018-01-31 23:23:19 +0200 | [diff] [blame] | 33 |    - export TERM=linux | 
 | 34 |    - export LANG=C | 
 | 35 |    # Configure dhclient | 
 | 36 |    - sudo echo "nameserver {gateway}" >> /etc/resolvconf/resolv.conf.d/base | 
 | 37 |    - sudo resolvconf -u | 
 | 38 |  | 
 | 39 |    # Enable grub menu using updated config below | 
 | 40 |    - update-grub | 
 | 41 |  | 
 | 42 |    # Prepare network connection | 
 | 43 |    - sudo ifup {interface_name} | 
 | 44 |    #- sudo route add default gw {gateway} {interface_name} | 
 | 45 |  | 
 | 46 |    # Create swap | 
 | 47 |    - fallocate -l 4G /swapfile | 
 | 48 |    - chmod 600 /swapfile | 
 | 49 |    - mkswap /swapfile | 
 | 50 |    - swapon /swapfile | 
 | 51 |    - echo "/swapfile   none    swap    defaults   0   0" >> /etc/fstab | 
 | 52 |  | 
 | 53 |  | 
 | 54 |    ############## TCP Cloud cfg01 node ################## | 
 | 55 |    #- sleep 120 | 
| Dennis Dmitriev | cf77780 | 2018-02-14 18:09:55 +0200 | [diff] [blame] | 56 |    #   - echo "Preparing base OS" | 
| Dennis Dmitriev | 8ed2788 | 2018-01-31 23:23:19 +0200 | [diff] [blame] | 57 |    - echo "nameserver 172.18.208.44" > /etc/resolv.conf; | 
| Oleksii Butenko | 336e441 | 2018-05-21 14:59:27 +0300 | [diff] [blame] | 58 |    #   - echo "nameserver 8.8.8.8" >> /etc/resolv.conf; | 
| Dennis Dmitriev | cf77780 | 2018-02-14 18:09:55 +0200 | [diff] [blame] | 59 |    #   - which wget >/dev/null || (apt-get update; apt-get install -y wget) | 
| Dennis Dmitriev | 8ed2788 | 2018-01-31 23:23:19 +0200 | [diff] [blame] | 60 |  | 
| Oleksii Butenko | 336e441 | 2018-05-21 14:59:27 +0300 | [diff] [blame] | 61 |    # Configure Ubuntu mirrors | 
| Dennis Dmitriev | cf77780 | 2018-02-14 18:09:55 +0200 | [diff] [blame] | 62 |    #   - echo "deb [arch=amd64] http://mirror.mirantis.com/{{ REPOSITORY_SUITE }}/ubuntu/ xenial main restricted universe" > /etc/apt/sources.list | 
 | 63 |    #   - echo "deb [arch=amd64] http://mirror.mirantis.com/{{ REPOSITORY_SUITE }}/ubuntu/ xenial-updates main restricted universe" >> /etc/apt/sources.list | 
 | 64 |    #   - echo "deb [arch=amd64] http://mirror.mirantis.com/{{ REPOSITORY_SUITE }}/ubuntu/ xenial-security main restricted universe" >> /etc/apt/sources.list | 
| Dennis Dmitriev | 8ed2788 | 2018-01-31 23:23:19 +0200 | [diff] [blame] | 65 |  | 
| Dennis Dmitriev | cf77780 | 2018-02-14 18:09:55 +0200 | [diff] [blame] | 66 |    #   - echo "deb [arch=amd64] http://apt.mirantis.com/xenial {{ REPOSITORY_SUITE }} salt extra" > /etc/apt/sources.list.d/mcp_salt.list; | 
 | 67 |    #   - wget -O - http://apt.mirantis.com/public.gpg | apt-key add -; | 
 | 68 |    #   - echo "deb http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3 xenial main" > /etc/apt/sources.list.d/saltstack.list; | 
 | 69 |    #   - wget -O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3/SALTSTACK-GPG-KEY.pub | apt-key add -; | 
| Dennis Dmitriev | 8ed2788 | 2018-01-31 23:23:19 +0200 | [diff] [blame] | 70 |  | 
| Dennis Dmitriev | cf77780 | 2018-02-14 18:09:55 +0200 | [diff] [blame] | 71 |    #   - apt-get clean | 
 | 72 |    #   - eatmydata apt-get update && apt-get -y upgrade | 
| Dennis Dmitriev | 8ed2788 | 2018-01-31 23:23:19 +0200 | [diff] [blame] | 73 |  | 
| Oleksii Butenko | 336e441 | 2018-05-21 14:59:27 +0300 | [diff] [blame] | 74 |    # Install common packages | 
| Dennis Dmitriev | cf77780 | 2018-02-14 18:09:55 +0200 | [diff] [blame] | 75 |    #   - eatmydata apt-get install -y python-pip git curl tmux byobu iputils-ping traceroute htop tree mc | 
| Dennis Dmitriev | 8ed2788 | 2018-01-31 23:23:19 +0200 | [diff] [blame] | 76 |  | 
| Oleksii Butenko | 336e441 | 2018-05-21 14:59:27 +0300 | [diff] [blame] | 77 |    # Install salt-minion and stop it until it is configured | 
| Dennis Dmitriev | cf77780 | 2018-02-14 18:09:55 +0200 | [diff] [blame] | 78 |    #   - eatmydata apt-get install -y salt-minion && service salt-minion stop | 
| Dennis Dmitriev | 8ed2788 | 2018-01-31 23:23:19 +0200 | [diff] [blame] | 79 |  | 
| Oleksii Butenko | 336e441 | 2018-05-21 14:59:27 +0300 | [diff] [blame] | 80 |    # Install latest kernel | 
| Dennis Dmitriev | cf77780 | 2018-02-14 18:09:55 +0200 | [diff] [blame] | 81 |    #   - eatmydata apt-get install -y {{ os_env('LINUX_KERNEL_HWE_PACKAGE_NAME', 'linux-image-extra-4.10.0-42-generic') }} | 
| Dennis Dmitriev | 8ed2788 | 2018-01-31 23:23:19 +0200 | [diff] [blame] | 82 |  | 
 | 83 |    ######################################################## | 
 | 84 |    # Node is ready, allow SSH access | 
 | 85 |    #- echo "Allow SSH access ..." | 
 | 86 |    #- sudo iptables -D INPUT -p tcp --dport 22 -j DROP | 
| Dennis Dmitriev | cf77780 | 2018-02-14 18:09:55 +0200 | [diff] [blame] | 87 |    #   - reboot | 
| Dennis Dmitriev | 8ed2788 | 2018-01-31 23:23:19 +0200 | [diff] [blame] | 88 |    ######################################################## | 
 | 89 |  | 
 | 90 |   write_files: | 
 | 91 |    - path: /etc/default/grub.d/97-enable-grub-menu.cfg | 
 | 92 |      content: | | 
 | 93 |          GRUB_RECORDFAIL_TIMEOUT=30 | 
 | 94 |          GRUB_TIMEOUT=3 | 
 | 95 |          GRUB_TIMEOUT_STYLE=menu | 
 | 96 |  | 
 | 97 |    - path: /etc/network/interfaces | 
 | 98 |      content: | | 
 | 99 |           # The loopback network interface | 
 | 100 |           auto lo | 
 | 101 |           iface lo inet loopback | 
 | 102 |           auto {interface_name} | 
| Oleksii Butenko | 336e441 | 2018-05-21 14:59:27 +0300 | [diff] [blame] | 103 |           iface {interface_name} inet dhcp | 
| Dennis Dmitriev | 752c1bf | 2018-12-19 13:05:16 +0200 | [diff] [blame] | 104 |  | 
 | 105 |    - path: /usr/share/growlvm/image-layout.yml | 
 | 106 |      content: | | 
 | 107 |        root: | 
| Dennis Dmitriev | c79f228 | 2019-01-21 13:52:19 +0200 | [diff] [blame] | 108 |          size: '30%VG' | 
| Dennis Dmitriev | 752c1bf | 2018-12-19 13:05:16 +0200 | [diff] [blame] | 109 |        home: | 
| Dennis Dmitriev | c79f228 | 2019-01-21 13:52:19 +0200 | [diff] [blame] | 110 |          size: '1G' | 
| Dennis Dmitriev | 752c1bf | 2018-12-19 13:05:16 +0200 | [diff] [blame] | 111 |        var_log: | 
| Dennis Dmitriev | c79f228 | 2019-01-21 13:52:19 +0200 | [diff] [blame] | 112 |          size: '11%VG' | 
| Dennis Dmitriev | 752c1bf | 2018-12-19 13:05:16 +0200 | [diff] [blame] | 113 |        var_log_audit: | 
| Dennis Dmitriev | c79f228 | 2019-01-21 13:52:19 +0200 | [diff] [blame] | 114 |          size: '5G' | 
| Dennis Dmitriev | 752c1bf | 2018-12-19 13:05:16 +0200 | [diff] [blame] | 115 |        var_tmp: | 
| Dennis Dmitriev | c79f228 | 2019-01-21 13:52:19 +0200 | [diff] [blame] | 116 |          size: '11%VG' | 
| Dennis Dmitriev | 752c1bf | 2018-12-19 13:05:16 +0200 | [diff] [blame] | 117 |        tmp: | 
| Dennis Dmitriev | c79f228 | 2019-01-21 13:52:19 +0200 | [diff] [blame] | 118 |          size: '5G' | 
| Dennis Dmitriev | 752c1bf | 2018-12-19 13:05:16 +0200 | [diff] [blame] | 119 |      owner: root:root | 
 | 120 |  | 
 | 121 |   growpart: | 
 | 122 |     mode: auto | 
 | 123 |     devices: | 
 | 124 |       - '/' | 
 | 125 |       - '/dev/vda3' | 
 | 126 |     ignore_growroot_disabled: false |