Подготовка образа под openstack
Общий план действий
Убрать все, кроме openstack
Удалить MAC-адрес и прочее
virt-sysprep -a /vms/astra-se-17-orel-dte-v04.raw
## virt-sysprep -d astra-dte ## этот вариант из (документации)[https://docs.openstack.org/image-guide/ubuntu-image.html]
Настройки cloud.cfg
users:
- default
disable_root: true
## aizaro ## если 'false', то файл /etc/hostname корректируется автоматически при смене имени инстанса
preserve_hostname: false
## aizaro ## если 'true' - cloud-init вносит корректировки в файл /etc/hosts
manage_etc_hosts: true
## aizaro ## настройка источника метаданных для openstack
datasource:
OpenStack:
metadata_urls: ["http://169.254.169.254"]
max_wait: 30
timeout: 10
retries: 3
apply_network_config: True
# The modules that run in the 'init' stage
cloud_init_modules:
- migrator
- seed_random
- bootcmd
- write-files
- growpart
- resizefs
- disk_setup
- mounts
- set_hostname
- update_hostname
- update_etc_hosts
- ca-certs
- rsyslog
- users-groups
- ssh
# The modules that run in the 'config' stage
cloud_config_modules:
# Emit the cloud config ready event
# this can be used by upstart jobs for 'start on cloud-config'.
- emit_upstart
#- snap
#- snap_config # DEPRECATED- Drop in version 18.2
- ssh-import-id
- locale
- set-passwords
- grub-dpkg
- apt-pipelining
- apt-configure
- ubuntu-advantage
- ntp
- timezone
- disable-ec2-metadata
- runcmd
- byobu
# The modules that run in the 'final' stage
cloud_final_modules:
- snappy # DEPRECATED- Drop in version 18.2
- package-update-upgrade-install
- fan
- landscape
- lxd
- puppet
- chef
- mcollective
- salt-minion
- rightscale_userdata
- scripts-vendor
- scripts-per-once
- scripts-per-boot
- scripts-per-instance
- scripts-user
- ssh-authkey-fingerprints
- keys-to-console
- phone-home
- final-message
- power-state-change
apt:
preserve_sources_list: false
sources_list: |
## aizaro ## пользовательский репозиторий, который будет добавлен в /etc/apt/sources.list
deb [trusted=yes] https://10.50.27.241/ubuntu/ bionic main multiverse universe
locale: ru_RU.UTF-8
# System and/or distro specific settings
# (not accessible to handlers/transforms)
system_info:
# This will affect which distro class gets used
distro: ubuntu
# Default user name + that default users groups (if added/used)
default_user:
name: ubuntu
lock_passwd: False
## aizaro ## хэш SHA512 пароля пользователя ubuntu, который взять из файла /etc/shadow или сгенерировать командой python:
## python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))'
passwd: $6$aJXkCCIR$mrf0bMA3hho0LTcOsk1RED7mmSXjbQrHsBi0GTxBWVonl3wVXVNJfkHRLTbbmceU6GUvEvh02PnOWV6GdOJRb0
gecos: Ubuntu
groups: [adm, audio, cdrom, dialout, dip, floppy, lxd, netdev, plugdev, sudo, video]
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
shell: /bin/bash
# Automatically discover the best ntp_client
ntp_client: auto
# Other config here will be given to the distro class and/or path classes
paths:
cloud_dir: /var/lib/cloud/
templates_dir: /etc/cloud/templates/
upstart_dir: /etc/init/
package_mirrors:
- arches: [i386, amd64]
failsafe:
primary: http://archive.ubuntu.com/ubuntu
security: http://security.ubuntu.com/ubuntu
search:
primary:
- http://%(ec2_region)s.ec2.archive.ubuntu.com/ubuntu/
- http://%(availability_zone)s.clouds.archive.ubuntu.com/ubuntu/
- http://%(region)s.clouds.archive.ubuntu.com/ubuntu/
security: []
- arches: [armhf, armel, default]
failsafe:
primary: http://ports.ubuntu.com/ubuntu-ports
security: http://ports.ubuntu.com/ubuntu-ports
ssh_svcname: ssh
Отключение проверки сертификата репозитория
Чтобы самоподписанный репозиторий работал по https, необходимо создать файл /etc/apt/apt.conf.d/99-repo.local.conf со следующим содержанием: