Como configurar o MySQL com o cloud-init?

1

Como posso fazer isso?

#cloud-config

users:
  - name: dev
    ssh-authorized-keys:
      - ssh-rsa AB3NzaC1yc...
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    groups: sudo
    shell: /bin/bash

packages:
  - mysql-client
  - libmysqlclient-dev
  - mysql-server

package-update: true
package_upgrade: true

runcmd:

#
# SSH
#
  - sed -i -e '/^Port/s/^.*$/Port 22/' /etc/ssh/sshd_config
  - sed -i -e '/^PermitRootLogin/s/^.*$/PermitRootLogin no/' /etc/ssh/sshd_config
  - sed -i -e '/^PasswordAuthentication/s/^.*$/PasswordAuthentication no/' /etc/ssh/sshd_config
  - sed -i -e '$aAllowUsers dev' /etc/ssh/sshd_config

  - sudo service ssh restart

#
# Firewall
#

  # defaults
  - sudo ufw default deny incoming
  - sudo ufw default allow outgoing

  # exceptions
  - sudo ufw allow ssh
  - sudo ufw allow http
  - sudo ufw allow https

  # start on boot
  - sed -i -e '/^ENABLED/s/^.*$/ENABLED=yes/' /etc/ufw/ufw.conf

  - sudo ufw enable

Com esta configuração, a conta root está desativada . E obtenho acesso acesso remoto com minha conta de usuário dev .

No entanto, instalações do MySQL falham com:

Errors were encountered while processing:
 /var/cache/apt/archives/mysql-server-5.7_5.7.17-0ubuntu0.16.04.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Cloud-init v. 0.7.8 running 'modules:final' at Sun, 29 Jan 2017 12:09:56 +0000. Up 14.23 seconds.
2017-01-29 12:11:24,114 - util.py[WARNING]: Failed to install packages: ['mysql-client', 'libmysqlclient-dev', 'mysql-server']
2017-01-29 12:11:24,125 - cc_package_update_upgrade_install.py[WARNING]: 1 failed with exceptions, re-raising the last one
2017-01-29 12:11:24,128 - util.py[WARNING]: Running module package-update-upgrade-install (<module 'cloudinit.config.cc_package_update_upgrade_install' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_package_update_upgrade_install.py'>) failed

Se eu não especificar nenhum usuário e executar uma configuração típica por meio do apt-get , a instalação será executada .

Não é possível configurar o MySQL com o cloud-init enquanto a minha conta root está desativada ? E se não, posso de alguma forma dizer cloud-init para configurar meus usuários depois que meus pacotes foram instalados / atualizados ?

    
por nmdias 29.01.2017 / 13:24

1 resposta

1

Consegui superar esse problema configurando manualmente o servidor mysql com:

runcmd:
  - sudo apt-get -y install mysql-server

Qualquer pessoa com o mesmo problema provavelmente também vai querer dar uma olhada em instalar o mysql não interativamente.

runcmd:
  - echo "mysql-server mysql-server/root_password password pwd" | sudo debconf-set-selections
  - echo "mysql-server mysql-server/root_password_again password pwd" | sudo debconf-set-selections

  - sudo apt-get -y install mysql-server

Solução publicada originalmente em aqui

    
por 29.01.2017 / 16:03