Cloud-init 0.7.9 Astra Linux настройка для Openstack
Datasources
cloud.cfg.d/90_dpkg.cfg
# to update this file, run dpkg-reconfigure cloud-init
datasource_list: [ NoCloud, ConfigDrive, OpenNebula, Azure, AltCloud, OVF, MAAS, GCE, OpenStack, CloudSigma, SmartOS, Ec2, CloudStack, None ]
Команда ‘dpkg-reconfigure cloud-init’ обновляет список datasource_list в этом файле. Можно вручную привести к виду:
ВАЖНО!!: именно Ec2, а не Openstack! Причем, если указать оба источника, гда первым будет Openstack - не работает. В астре работает только так.cloud.conf
# The top level settings are used as module
# and system configuration.
# A set of users which may be applied and/or used by various modules
# when a 'default' entry is found it will reference the 'default_user'
# from the distro configuration specified below
users:
- default
# If this is set, 'root' will not be able to ssh in and they
# will get a message to login instead as the above $user (debian)
disable_root: true
# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: false
# !! aizaro - urgent
manage_etc_hosts: true
# Example datasource config
# datasource:
# Ec2:
# metadata_urls: [ 'blah.com' ]
# timeout: 5 # (defaults to 50 seconds)
# max_wait: 10 # (defaults to 120 seconds)
#
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
- ssh-import-id
- locale
- set-passwords
- grub-dpkg
- apt-pipelining
- apt-configure
- ntp
- timezone
- disable-ec2-metadata
- runcmd
- byobu
# The modules that run in the 'final' stage
cloud_final_modules:
- package-update-upgrade-install
- fan
- puppet
- chef
- salt-minion
- mcollective
- 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: |
#deb https://download.astralinux.ru/astra/stable/orel/repository/ orel main contrib non-free
#deb [trusted=yes] http://download.astralinux.ru /
deb [trusted=yes] http://10.55.82.106 /
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: astra
# Default user name + that default users groups (if added/used)
default_user:
name: astra
lock_passwd: True
gecos: Astra Linux
groups: [adm, audio, cdrom, dialout, dip, floppy, netdev, plugdev, sudo, video]
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
shell: /bin/bash
# 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: [default]
failsafe:
primary: https://download.astralinux.ru/astra
security: https://download.astralinux.ru/astra
ssh_svcname: ssh
Setup script
#!/bin/bash
PPL="
automake
libcurl3
curl
intltool
liburi-perl
libwww-perl
libxml-parser-perl
libyaml-0-2
python3.7-dbg
python3-asn1crypto
python3-blinker
python3-certifi
python3-cffi
python3-cffi-backend-dbg
python3-chardet
python3-configobj
python3-cryptography
python3-dbg
python3-distutils
python3-idna
python3-jinja2
python3-jsonpatch
python3-json-pointer
python3-jwt
python3-lib2to3
python3-markupsafe
python3-oauthlib
python3-pbr
python3-pkg-resources
python3-prettytable
python3-requests
python3-setuptools
python3-six
python3-urllib3
python3-yaml
"
for PP in $PPL; do
apt install $PP
done
Cirros samples
$ cat ds-configdrive
# SEED_PRE_D, SEED_POST_D consider these directories
# to have configdrive data before and after block devices
SEED_PRE_D="/var/lib/cloud/seed/configdrive-pre"
SEED_POST_D="/var/lib/cloud/seed/configdrive"
$ cat ds-nocloud
# SEED_PRE_D, SEED_POST_D consider these directories
# to have nocloud data before and after block devices
SEED_PRE_D="/var/lib/cloud/seed/nocloud-pre"
SEED_POST_D="/var/lib/cloud/seed/nocloud"
Конфигурирование источников данных: