The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Использование cloud-init для запуск..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Использование cloud-init для запуск..."  +/
Сообщение от auto_tips (ok) on 05-Янв-11, 05:16 
В состав адаптированных для установки в cloud-окружениях сборок Ubuntu 10.10 (UEC) был интегрирован [[https://help.ubuntu.com/community/CloudInit cloud-init]], конфигурируемый процесс инициализации, позволяющий унифицировать процесс задания конфигурации во время загрузки, например, указать локаль, имя хоста, SSH-ключи и точки монтирования.

Ниже представлен скрипт по установке и преднастройке UEC-сборки в виде гостевой системы, работающей под управлением локального гипервизора KVM.

# Загружаем свежую сборку UEC с http://uec-images.ubuntu.com,
# например, стабильный выпуск Ubuntu 10.10 (http://uec-images.ubuntu.com/maverick/current/)
# или тестовую версию Ubuntu 11.04 (http://uec-images.ubuntu.com/natty/current/).

   uecnattyservercurrent=http://uec-images.ubuntu.com/server/natty/current/natty-serv...

# Распаковываем img-образ и устанавливаем несколько переменных, указываем
# на ядро и базовые директории:

   tarball=$(basename $uecnattyservercurrent)
   [ -f ${tarball} ] || wget ${uecnattyservercurrent}
   contents=${tarball}.contents
   tar -Sxvzf ${tarball} | tee "${contents}"
   cat natty-server-uec-i386.tar.gz.contents
   base=$(sed -n 's/.img$//p' "${contents}")
   kernel=$(echo ${base}-vmlinuz-*)
   floppy=${base}-floppy
   img=${base}.img

# Преобразуем образ UEC в формат qcow2, для запуска под управлением KVM:

   qemu-img create -f qcow2 -b ${img} disk.img

# Подготавливаем набор мета-данных (файлы meta-data и user-data) для
# автоматизации настройки гостевой системы, примеры можно посмотреть [[http://smoser.brickies.net/ubuntu/uec-seed/ здесь]]

# Запускаем простейший HTTP-сервер для отдачи файлов с мета-данными
# Сервер будет запущен на 8000 порту и будет отдавать файлы meta-data
# и user-data из текущей директории, которые следует модифицировать в зависимости
# от текущих предпочтений (можно прописать команды по установке дополнительных пакетов,
# запустить любые команды, подключить точки монтирования и т.п.)

   python -m SimpleHTTPServer &
   websrvpid=$!

# Запускаем гостевую систему под управлением KVM, базовый URL для загрузки
# мета-данных передаем через опцию "s=":

   kvm -drive file=disk.img,if=virtio,boot=on -kernel "${kernel}" \
      -append "ro init=/usr/lib/cloud-init/uncloud-init root=/dev/vda ds=nocloud-net;s=http://192.168.122.1:8000/ ubuntu-pass=ubuntu"

# Завершаем выполнение http-сервера, используемого для отдачи мета-данных.
   kill $websrvpid

Пример файла user-data:

   #cloud-config
   #apt_update: false
   #apt_upgrade: true
   #packages: [ bzr, pastebinit, ubuntu-dev-tools, ccache, bzr-builddeb, vim-nox, git-core, lftp ]

   apt_sources:
    - source: ppa:smoser/ppa

   disable_root: True

   mounts:
    - [ ephemeral0, None ]
    - [ swap, None ]

   ssh_import_id: [smoser ]

   sm_misc:
    - &user_setup |
      set -x; exec > ~/user_setup.log 2>&1
      echo "starting at $(date -R)"
      echo "set -o vi" >> ~/.bashrc
      cat >> ~/.profile <<EOF
      export EDITOR=vi
      EOF

   runcmd:
    - [ sudo, -Hu, ubuntu, sh, -c, 'grep "cloud-init.*running"  /var/log/cloud-init.log > ~/runcmd.log' ]
    - [ sudo, -Hu, ubuntu, sh, -c, 'read up sleep < /proc/uptime; echo $(date): runcmd up at $up | tee -a ~/runcmd.log' ]
    - [ sudo, -Hu, ubuntu, sh, -c, *user_setup ]

Пример файла meta-data

   #ami-id: ami-fd4aa494
   #ami-launch-index: '0'
   #ami-manifest-path: ubuntu-images-us/ubuntu-lucid-10.04-amd64-server-20100427.1.manifest.xml
   #block-device-mapping: {ami: sda1, ephemeral0: sdb, ephemeral1: sdc, root: /dev/sda1}
   hostname: smoser-sys
   #instance-action: none
   instance-id: i-87018aed
   instance-type: m1.large
   #kernel-id: aki-c8b258a1
   local-hostname: smoser-sys.mosers.us
   #local-ipv4: 10.223.26.178
   #placement: {availability-zone: us-east-1d}
   #public-hostname: ec2-184-72-174-120.compute-1.amazonaws.com
   #public-ipv4: 184.72.174.120
   #public-keys:
   #  ec2-keypair.us-east-1: [ssh-rsa AAAA.....
   #      ec2-keypair.us-east-1, '']
   #reservation-id: r-e2225889
   #security-groups: default


URL: http://www.ubuntu.com/content/ahmed-kamal-cloud-instance-clo... https://help.ubuntu.com/community/UEC/Images
Обсуждается: http://www.opennet.ru/tips/info/2511.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Использование cloud-init для запуска cloud-редакции Ubuntu в..."  +/
Сообщение от User294 (ok) on 05-Янв-11, 05:16 
Много букв, и, главное - в половине мест напихана какая-то черная магия... без объяснений ЧТО и ЗАЧЕМ делается. Ну вот например, образцы файлов - это круто. Но совсем иначе станет когда захочется их осмысленно отредактировать. В итоге не понятен смысл гайда. Ман я почитать могу и без гайдов :). А вот что и зачем - этот ман к сожалению не показывает и не рассказывает.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Использование cloud-init для запуска cloud-редакции Ubuntu в..."  +/
Сообщение от Тру_Гангста on 05-Янв-11, 12:49 
согласен, коментариев очень мало
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2020 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру