Если вы подыскиваете простой, функциональный и небольшой по размеру дистрибутив Linux для работы с Docker, то я советую вам посмотреть в сторону Photon OS. В конце августа вышел новый релиз Photon OS Technical Preview 2 (TP2), который принес много всего интересного. Информация о релизе доступна по ссылке.
Для задания статического адреса удалите файл 10-dhcp.network:
Для работы кастомизации требуется наличие vSphere 6.0. Шаблон ВМ должен иметь 11 версию Virtual Machine Version, а качестве гостевой ОС должна быть выбрана CoreOS Linux (x64).
В целях безопасности, перед выключением ВМ для создания из нее шаблона или клонирования не лишним будет удалить из нее файлы SSH ключей:
С помощью cloud-init возможно изменять имя хоста, настраивать сетевые интерфейсы, изменять размер томов, изменять etc/hosts, настраивать Puppet и многое другое. Полный список модулей доступен по ссылке.
Образ Config Drive должен включать в себя, по крайней мере, два файла в формате YAML:
Для создания Config Drive проще всего использовать Photon OS в Full инсталляции.
Создайте файл user-data со следующим содержимым (не забудьте про отступы, а также #cloud-config в начале файла, для проверки можете использовать online-валидатор: https://coreos.com/validate/):
Если нужно, чтобы все модули отработали, а instance-id менять, по какой-либо причине не хочется, то нужно удалить все содержимое каталога /var/lib/cloud/instances:
Photon OS строится на базе другого известного мини-дистрибутива CoreOS Linux и заточен под работу с гипервизорами VMware и облачными инфраструктурами на базе OpenStack.
Установка
Photon OS доступен для загрузки с сайта http://vmware.github.io/photon/ в виде ISO образа (Full ISO и Minimal ISO), а также в виде шаблона ВМ в формате OVA.
Перед установкой настоятельно рекомендую ознакомиться с официальным FAQ по Project Photon, а также FAQ комьюнити на GitHub.
Перед установкой настоятельно рекомендую ознакомиться с официальным FAQ по Project Photon, а также FAQ комьюнити на GitHub.
Установка Photon OS может быть выполнена в одном из следующих режимов:
- Photon Micro - минимальный из доступных вариантов установки, предназначенный для развертывания внутри контейнера.
- Photon Minimal - подходит для развертывания как внутри контейнера, так и на хосте.
- Photon Full - установка со всем необходимым набором пакетов, может использоваться для разработки или тестирования.
- Photon OSTree Host - установка Photon OS в режиме RPM-OSTree хоста, который синхронизирует все изменения с единого сервера, позволяя централизованно обновлять множество хостов. Более подробно про RPM-OSTree можно прочитать тут.
- Photon OSTree Server - установка Photon OS в режиме RPM-OSTree сервера, с которым будут синхронизироваться хосты.
Установка дистрибутива на ВМ vSphere крайне проста. Все, что требуется - это указать диск, на который будет установлена ОС, задать имя компьютера и пароль для root.
При развертывании ВМ из OVA шаблона для учетной записи root задан пароль по умолчанию: changeme
Изменение сетевых настроек
Конфигурация сетевых интерфейсов хранится в файлах .network в каталоге /etc/systemd/network. По умолчанию в каталоге присутствует только один файл 10-dhcp.network в котором прописано получение всех сетевых настроек через DHCP.
Для задания статического адреса удалите файл 10-dhcp.network:
rm /etc/systemd/network/10-dhcp.network
Создайте новый файл в каталоге /etc/systemd/network/, например, 10-static.network (имя не принципиально и используется только для очередности применения сетевых настроек, важно только, чтобы расширение файла было .network) со следующим содержимым:
[Match]
Name=eno16780032
[Network]
Address=192.168.1.40/24
Gateway=192.168.1.1
DNS=192.168.1.10
Domains=test.local
, где eno16780032 - имя сетевого интерфейса.
Имя сетевого интерфейса можно посмотреть с помощью команд ifconfig или networkctl
root [ / ]# ifconfig
eno16780032Link encap:Ethernet HWaddr 00:50:56:A3:35:A0
inet addr:192.168.1.40 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:432482 errors:0 dropped:220 overruns:0 frame:0
TX packets:40289 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:36893044 TX bytes:6387665
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:516 TX bytes:516
Для редактирования можно использовать nano (доступен в Full инсталляции) или vi.
После редактирования файла выполните команду
systemctl restart systemd-networkd.service
или перезагрузите компьютер:
systemctl restart systemd-networkd.service
или перезагрузите компьютер:
reboot
Настройка root для подключения по SSH
По умолчанию, учетной записи root запрещено напрямую авторизовываться по SSH. Чтобы разрешить подключение требуется отредактировать файл /etc/ssh/sshd_config и раскомментировать строчку:
PermitRootLogin yes
После чего перезапустить службу sshd с помощью команды:
systemctl restart sshd.service
Установка обновлений пакетов
Несмотря на то, что Photon OS придерживается атомарного подхода к развертыванию - все необходимое уже есть внутри, обновление выполняется для всего дистрибутива сразу, а не для отдельных компонентов, в некоторых случаях может потребоваться установить дополнительные пакеты или обновить существующие.
В Photon OS менеджером пакетов по умолчанию является tdnf (в Full варианте установке также присутствует привычный всем yum).
В Photon OS менеджером пакетов по умолчанию является tdnf (в Full варианте установке также присутствует привычный всем yum).
В Full установке для обновления пакетов достаточно выполнить команду:
yum update
В Minimal и Micro установке проще всего будет сначала установить yum:
tdnf install yum
А затем запустить обновление через него. Если yum ставить не хочется, то можно выполнить команду:
tdnf check-updateА затем поочередно для каждого пакета, который нуждается в обновлении:
tdnf upgrade <packet_name>
Если после обновления VMware Tools не стартуют (в свойствах ВМ отображается not running / not installed), создайте символическую ссылку на файл конфигурации сервиса и запустите сервис:
ln -s /usr/lib/systemd/system/vmtoolsd.service /etc/systemd/system/multi-user.target.wants/vmtoolsd.service
cd /etc/systemd/system/multi-user.target.wants/
systemctl enable vmtoolsd.service
systemctl start vmtoolsd.service
Кастомизация с помощью vSphere Customization Specification
Начиная с релиза Photon OS TP2 при клонировании ВМ из шаблона поддерживается кастомизация ВМ с помощью Customization Specification.Для работы кастомизации требуется наличие vSphere 6.0. Шаблон ВМ должен иметь 11 версию Virtual Machine Version, а качестве гостевой ОС должна быть выбрана CoreOS Linux (x64).
В целях безопасности, перед выключением ВМ для создания из нее шаблона или клонирования не лишним будет удалить из нее файлы SSH ключей:
rm -f /etc/ssh/ssh_host_*
Кастомизация с помощью Cloud-init
Photon OS также поддерживает автоматическую настройку ОС с помощью cloud-init. Для VMware vSphere настройка выполняется через Config Drive - специальный ISO образ, с которого Photon OS считывает настройки в момент загрузки ОС.С помощью cloud-init возможно изменять имя хоста, настраивать сетевые интерфейсы, изменять размер томов, изменять etc/hosts, настраивать Puppet и многое другое. Полный список модулей доступен по ссылке.
Образ Config Drive должен включать в себя, по крайней мере, два файла в формате YAML:
- user-data - файл конфигурации.
- meta-data - файл мета-данных.
Для создания Config Drive проще всего использовать Photon OS в Full инсталляции.
Создайте файл user-data со следующим содержимым (не забудьте про отступы, а также #cloud-config в начале файла, для проверки можете использовать online-валидатор: https://coreos.com/validate/):
#cloud-configСоздайте файл meta-data со следующим содержимым:
hostname: photon14
write_files:
- path: /etc/systemd/network/10-static.network
permissions: 0644
content: |
[Match]
Name=eno16780032
[Network]
Address=192.168.1.50/24
Gateway=192.168.1.1
DNS=192.168.1.1
runcmd:
- reboot
instance-id: photon14В качестве instance-id в файле meta-data нужно задавать уникальное значение, отличное от текущего instance-id в эталонной ВМ, так как некоторые из модулей cloud-init запускаются только один раз для одного инстанса, например, write_files. Если не изменить instance-id, то модуль не запустится. Текущий instance-id можно посмотреть в файле /var/lib/cloud/data/instance-id
local-hostname: photon14
Если нужно, чтобы все модули отработали, а instance-id менять, по какой-либо причине не хочется, то нужно удалить все содержимое каталога /var/lib/cloud/instances:
rm -rf /var/lib/cloud/instancesПосле создания файлов user-data и meta-data создайте ISO образ:
genisoimage -output customize.iso -volid cidata -joliet -rock user-data meta-dataТеперь осталось только скопировать образ куда-нибудь, откуда его можно подключить к ВМ, и перезагрузить саму ВМ.