Remove Docker related code

We got rid of using docker containers
on the master node. Now we deploy all
Fuel service directly on the host.

Implements blueprint: get-rid-docker-containers

Change-Id: Ie636d33d091a95fb0ff8fbd71e49cbccf1cb34fa
This commit is contained in:
Vladimir Kozhukalov
2016-02-10 17:18:48 +03:00
parent a944fa6121
commit c23c6c7a46
52 changed files with 6 additions and 1867 deletions

View File

@@ -69,6 +69,5 @@ include $(SOURCE_DIR)/sandbox.mk
include $(SOURCE_DIR)/repos.mk
include $(SOURCE_DIR)/mirror/module.mk
include $(SOURCE_DIR)/packages/module.mk
include $(SOURCE_DIR)/docker/module.mk
include $(SOURCE_DIR)/iso/module.mk
include $(SOURCE_DIR)/virtualbox.mk

View File

@@ -4,10 +4,6 @@ FUEL
This git repository contains Fuel ISO build scripts.
Directory structure:
- ```docker```
Scripts for building Docker containers are located. The Fuel
master node is deployed using Docker. Every Fuel major component like Nailgun, Astute,
Cobbler, Mcollective, etc. is installed as a separate Docker container.
- ```fuel-bootstrap-image```
Scripts which allow us to build Ubuntu based bootstrap ramdisk on the
Fuel master node in runtime. The status of this ramdisk is experimental.

View File

@@ -30,7 +30,6 @@ FUEL_LIBRARY_VERSION?=9.0
# Artifacts names
ISO_NAME?=fuel-$(PRODUCT_VERSION)
VBOX_SCRIPTS_NAME?=vbox-scripts-$(PRODUCT_VERSION)
DOCKER_ART_NAME?=fuel-images.tar.lrz
# Where we put artifacts
ISO_PATH:=$(ARTS_DIR)/$(ISO_NAME).iso
@@ -128,8 +127,6 @@ LOCAL_MIRROR_MOS_CENTOS:=$(LOCAL_MIRROR)/mos-centos
LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL:=$(LOCAL_MIRROR_MOS_CENTOS)
LOCAL_MIRROR_UBUNTU:=$(LOCAL_MIRROR)/ubuntu
LOCAL_MIRROR_UBUNTU_OS_BASEURL:=$(LOCAL_MIRROR_UBUNTU)
LOCAL_MIRROR_DOCKER:=$(LOCAL_MIRROR)/docker
LOCAL_MIRROR_DOCKER_BASEURL:=$(LOCAL_MIRROR_DOCKER)
# Use download.mirantis.com mirror by default. Other possible values are
# 'msk', 'srt', 'usa', 'hrk', 'cz'
@@ -144,42 +141,36 @@ MIRROR_CENTOS_KERNEL?=$(MIRROR_CENTOS)
SANDBOX_MIRROR_CENTOS_UPSTREAM?=$(MIRROR_CENTOS)
MIRROR_UBUNTU?=mirror.fuel-infra.org
MIRROR_MOS_UBUNTU?=$(MIRROR_UBUNTU)
MIRROR_DOCKER?=http://mirror.fuel-infra.org/docker/$(PRODUCT_VERSION)
endif
ifeq ($(USE_MIRROR),srt)
MIRROR_FUEL?=http://osci-mirror-srt.srt.mirantis.net/mos-repos/centos/$(PRODUCT_NAME)$(PRODUCT_VERSION)-centos$(CENTOS_MAJOR)-fuel/os/x86_64/
MIRROR_UBUNTU?=osci-mirror-srt.srt.mirantis.net
MIRROR_MOS_UBUNTU?=$(MIRROR_UBUNTU)
MIRROR_DOCKER?=http://osci-mirror-srt.srt.mirantis.net/docker/$(PRODUCT_VERSION)
endif
ifeq ($(USE_MIRROR),msk)
MIRROR_FUEL?=http://osci-mirror-msk.msk.mirantis.net/mos-repos/centos/$(PRODUCT_NAME)$(PRODUCT_VERSION)-centos$(CENTOS_MAJOR)-fuel/os/x86_64/
MIRROR_UBUNTU?=osci-mirror-msk.msk.mirantis.net
MIRROR_MOS_UBUNTU?=$(MIRROR_UBUNTU)
MIRROR_DOCKER?=http://osci-mirror-msk.msk.mirantis.net/docker/$(PRODUCT_VERSION)
endif
ifeq ($(USE_MIRROR),hrk)
MIRROR_FUEL?=http://osci-mirror-kha.kha.mirantis.net/mos-repos/centos/$(PRODUCT_NAME)$(PRODUCT_VERSION)-centos$(CENTOS_MAJOR)-fuel/os/x86_64/
MIRROR_UBUNTU?=osci-mirror-kha.kha.mirantis.net
MIRROR_MOS_UBUNTU?=$(MIRROR_UBUNTU)
MIRROR_DOCKER?=http://osci-mirror-kha.kha.mirantis.net/docker/$(PRODUCT_VERSION)
endif
ifeq ($(USE_MIRROR),usa)
MIRROR_FUEL?=http://mirror.seed-us1.fuel-infra.org/mos-repos/centos/$(PRODUCT_NAME)$(PRODUCT_VERSION)-centos$(CENTOS_MAJOR)-fuel/os/x86_64/
MIRROR_UBUNTU?=mirror.seed-us1.fuel-infra.org
MIRROR_MOS_UBUNTU?=$(MIRROR_UBUNTU)
MIRROR_DOCKER?=http://mirror.seed-us1.fuel-infra.org/docker/$(PRODUCT_VERSION)
endif
ifeq ($(USE_MIRROR),cz)
MIRROR_FUEL?=http://mirror.seed-cz1.fuel-infra.org/mos-repos/centos/$(PRODUCT_NAME)$(PRODUCT_VERSION)-centos$(CENTOS_MAJOR)-fuel/os/x86_64/
MIRROR_UBUNTU?=mirror.seed-cz1.fuel-infra.org
MIRROR_MOS_UBUNTU?=$(MIRROR_UBUNTU)
MIRROR_DOCKER?=http://mirror.seed-cz1.fuel-infra.org/docker/$(PRODUCT_VERSION)
endif
# Which repositories to use for making local centos mirror.
@@ -202,10 +193,6 @@ MIRROR_MOS_UBUNTU?=perestroika-repo-tst.infra.mirantis.net
MIRROR_MOS_UBUNTU_ROOT?=/mos-repos/ubuntu/$(PRODUCT_VERSION)
MIRROR_MOS_UBUNTU_SUITE?=$(PRODUCT_NAME)$(PRODUCT_VERSION)
MIRROR_MOS_UBUNTU_SECTION?=main restricted
# NOTE(kozhukalov): We are getting rid of staging mirrors (FWM) which are built using 'make mirror' command.
# But we still need a place where we can download docker base images. They are quite stable
# and we just put them manually under this URL.
MIRROR_DOCKER?=http://mirror.fuel-infra.org/docker/$(PRODUCT_VERSION)
# MIRROR_FUEL affects build process only if YUM_REPOS variable contains 'fuel'.
# Otherwise it is ignored entirely.
@@ -222,9 +209,6 @@ comma:=,
# Path to yaml configuration file to build ISO ks.cfg
KSYAML?=$(SOURCE_DIR)/iso/ks.yaml
# Production variable (prod, dev, docker)
PRODUCTION?=docker
# Copy local /etc/ssl certs inside SANDBOX, which used for build deb mirror and packages.
# This option should be enabled, in case you have to pass https repos for Ubuntu.
SANDBOX_COPY_CERTS?=0

View File

@@ -1,18 +0,0 @@
# fuel/astute
FROM fuel/centos
MAINTAINER Matthew Mosesohn mmosesohn@mirantis.com
ENV container docker
ENV DOCKER_PORT _PORT_
ENV EXTRA_RPM_REPOS _EXTRA_RPM_REPOS_
ADD etc /etc
ADD start.sh /usr/local/bin/
ADD setup.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/{setup,start}.sh
VOLUME ["/etc/astute"]
CMD ["/usr/sbin/init"]

View File

@@ -1,60 +0,0 @@
#!/bin/bash -xe
rm -rf /etc/yum.repos.d/*
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/repo/os/x86_64/
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/mos-repo/
gpgcheck=0
EOF
for repo in ${EXTRA_RPM_REPOS}; do
IFS=, read -a repo_args <<< "$repo"
cat << EOF >> /etc/yum.repos.d/nailgun.repo
[extra-repo-${repo_args[0]}]
name=MOS Extra Repo ${repo_args[0]}
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/extra-repos/${repo_args[0]}
gpgcheck=0
EOF
done
yum clean expire-cache
yum update -y
packages="psmisc python-editor nailgun-mcagents sysstat "
packages+="rubygem-amqp rubygem-amq-protocol rubygem-i18n rubygem-tzinfo "
packages+="rubygem-minitest rubygem-symboltable "
packages+="rubygem-thread_safe fuel-agent"
echo $packages | xargs -n1 yum install -y
#FIXME(dteselkin): use correct versions of rubygem packages
sed -i '/amq-protocol/ s/~>/>=/' /usr/share/gems/specifications/amqp-*.gemspec
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
/etc/puppet/modules/nailgun/examples/astute-only.pp || [[ $? == 2 ]]
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=file:/var/www/nailgun/centos/x86_64
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=file:/var/www/nailgun/mos-centos/x86_64
gpgcheck=0
EOF
yum clean all
systemctl enable start-container.service

View File

@@ -1,14 +0,0 @@
#!/bin/bash
# Clean rpm locks before puppet run.
# See ticket https://bugs.launchpad.net/fuel/+bug/1339236
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
mkdir -p /var/log/astute
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
--logdest /var/log/puppet/astute.log \
/etc/puppet/modules/nailgun/examples/astute-only.pp

View File

@@ -1,22 +0,0 @@
# fuel-cobbler
#
# Version 0.1
FROM fuel/centos
MAINTAINER Matthew Mosesohn mmosesohn@mirantis.com
ENV container docker
ENV DOCKER_PORT _PORT_
ENV EXTRA_RPM_REPOS _EXTRA_RPM_REPOS_
ADD etc /etc
ADD start.sh /usr/local/bin/
ADD setup.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/{setup,start}.sh
EXPOSE 53 53/udp 67 67/udp 69/udp 80 443
VOLUME /etc/cobbler
CMD ["/usr/sbin/init"]

View File

@@ -1,86 +0,0 @@
#!/bin/bash -xe
rm -rf /etc/yum.repos.d/*
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/repo/os/x86_64/
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/mos-repo/
gpgcheck=0
EOF
for repo in ${EXTRA_RPM_REPOS}; do
IFS=, read -a repo_args <<< "$repo"
cat << EOF >> /etc/yum.repos.d/nailgun.repo
[extra-repo-${repo_args[0]}]
name=MOS Extra Repo ${repo_args[0]}
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/extra-repos/${repo_args[0]}
gpgcheck=0
EOF
done
yum clean expire-cache
yum update -y
ln -s /etc/dnsmasq.conf /etc/cobbler.dnsmasq.conf
packages="httpd cobbler dnsmasq xinetd tftp-server"
echo $packages | xargs -n1 yum install -y
mkdir -p /etc/systemd/system/{httpd,cobblerd,tftp,dnsmasq,xinetd}.service.d/
for srv in httpd cobblerd tftp dnsmasq xinetd; do
cat << EOF > /etc/systemd/system/${srv}.service.d/restart.conf
[Service]
Restart=on-failure
RestartSec=5
EOF
done
systemctl enable httpd.service \
cobblerd.service \
tftp.service \
dnsmasq.service \
xinetd.service
#Workaround for dnsmasq startup and create blank SSH key during build
cat << EOF > /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=$HOSTNAME
EOF
mkdir -p /root/.ssh
chmod 700 /root/.ssh
touch /root/.ssh/id_rsa.pub
systemctl restart httpd.service
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
/etc/puppet/modules/nailgun/examples/cobbler-only.pp || [[ $? == 2 ]]
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=file:/var/www/nailgun/centos/x86_64
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=file:/var/www/nailgun/mos-centos/x86_64
gpgcheck=0
EOF
yum clean all
systemctl enable start-container.service

View File

@@ -1,36 +0,0 @@
#!/bin/bash
# Clean rpm locks before puppet run.
# See ticket https://bugs.launchpad.net/fuel/+bug/1339236
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
mkdir -p /var/log/cobbler/{anamon,kicklog,syslog,tasks}
# reset authorized_keys file so puppet can a write new one
rm -f /etc/cobbler/authorized_keys
# Because /var/lib/cobbler is mounted as a volume, reinstall if its files are
# missing
if rpm -V cobbler | grep -q missing; then
yum reinstall -q -y cobbler
fi
if rpm -V cobbler-web | grep -q missing; then
yum reinstall -q -y cobbler-web
fi
# Run puppet to apply custom config
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
--logdest /var/log/puppet/cobbler.log \
/etc/puppet/modules/nailgun/examples/cobbler-only.pp || [[ $? == 2 ]]
puppet apply --debug --verbose --color false --detailed-exitcodes \
--logdest /var/log/puppet/cobbler-dhcp-default-range.log \
/etc/puppet/modules/nailgun/examples/dhcp-default-range.pp || [[ $? == 2 ]]
systemctl enable dnsmasq
systemctl restart dnsmasq

View File

@@ -1,44 +0,0 @@
HOSTNAME: fuel
DNS_DOMAIN: domain.tld
DNS_SEARCH: domain.tld
DNS_UPSTREAM: 8.8.8.8
NTP1: time.nist.gov
NTP2: time-a.nist.gov
NTP3: time-b.nist.gov
ADMIN_NETWORK:
interface: eth0
ipaddress: 10.20.0.2
netmask: 255.255.255.0
cidr: 10.20.0.0/24
size: '256'
static_pool_start: 10.20.0.10
static_pool_end: 10.20.0.120
dhcp_pool_start: 10.20.0.130
dhcp_pool_end: 10.20.0.254
FUEL_ACCESS:
user: admin
password: admin
uid: master
TEST_DNS: www.google.com
astute:
password: naily
user: naily
cobbler:
password: cobbler
user: cobbler
keystone:
admin_token: admin
mcollective:
password: mcollective
user: mcollective
postgres:
keystone_dbname: keystone
keystone_user: keystone
keystone_password: keystone
nailgun_dbname: nailgun
nailgun_user: nailgun
nailgun_password: nailgun
ostf_dbname: ostf
ostf_user: ostf
ostf_password: ostf
PRODUCTION: docker-build

View File

@@ -1,33 +0,0 @@
#fuel/centos-docker-build
FROM centos:centos7
MAINTAINER Matthew Mosesohn mmosesohn@mirantis.com
ENV container docker
ENV EXTRA_RPM_REPOS _EXTRA_RPM_REPOS_
RUN echo _CENTOS_RELEASE_ > /etc/yum/vars/releasever
RUN _PROXY_ yum --disablerepo=* --enablerepo=C_CENTOS_RELEASE_-base --enablerepo=C_CENTOS_RELEASE_-extras --enablerepo=C_CENTOS_RELEASE_-updates -y update
RUN yum clean all
RUN _PROXY_ yum --disablerepo=* --enablerepo=C_CENTOS_RELEASE_-base --enablerepo=C_CENTOS_RELEASE_-extras --enablerepo=C_CENTOS_RELEASE_-updates -y install dbus
RUN systemctl mask dev-mqueue.mount dev-hugepages.mount \
systemd-remount-fs.service sys-kernel-config.mount \
sys-kernel-debug.mount sys-fs-fuse-connections.mount \
display-manager.service graphical.target systemd-logind.service \
firewalld.service
ADD dbus.service /etc/systemd/system/dbus.service
RUN systemctl enable dbus.service
RUN rm -f /etc/yum.repos.d/*
ADD start.sh /usr/local/bin/
ADD fuel-centos.ks /root/fuel-centos.ks
RUN chmod +x /usr/local/bin/start.sh
# Set default target
RUN systemctl set-default multi-user.target
CMD ["/usr/lib/systemd/systemd"]

View File

@@ -1,19 +0,0 @@
[Unit]
Description=D-Bus System Message Bus
Requires=dbus.socket
After=syslog.target
[Service]
PIDFile=/var/run/messagebus.pid
ExecStartPre=/bin/mkdir -p /var/run/dbus
ExecStartPre=/bin/chmod g+w /var/run/ /var/run/dbus/
ExecStart=/bin/dbus-daemon --system --fork
ExecReload=/bin/dbus-send --print-reply --system --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig
ExecStopPost=/bin/rm -f /var/run/messagebus.pid
#OOMScoreAdjust=-900
User=dbus
Group=root
PermissionsStartOnly=true
[Install]
WantedBy=multi-user.target

View File

@@ -1,266 +0,0 @@
install
#url --url=http://127.0.0.1/repo/os/x86_64/
lang en_US.UTF-8
keyboard uk
network --device eth0 --bootproto dhcp
rootpw --iscrypted $1$UKLtvLuY$kka6S665oCFmU7ivSDZzU.
authconfig --enableshadow --passalgo=sha512 --enablefingerprint
selinux --disabled
timezone --utc Etc/UTC
repo --name="Upstream CentOS" --baseurl=http://127.0.0.1/repo/os/x86_64/
repo --name="MOS CentOS" --baseurl=http://127.0.0.1/mos-repo/
%include /root/extra-repos.ks
clearpart --all --initlabel
part / --fstype ext4 --size=2048 --grow
reboot
%packages --excludedocs --nobase
@Core
-MAKEDEV
-aic94xx-firmware
-atmel-firmware
-b43-openfwwf
-bfa-firmware
-dhclient
-efibootmgr
-ethtool
-initscripts
-iproute
-iptables
-iptables-ipv6
-iputils
-ipw2100-firmware
-ipw2200-firmware
-ivtv-firmware
-iwl100-firmware
-iwl1000-firmware
-iwl3945-firmware
-iwl4965-firmware
-iwl5000-firmware
-iwl5150-firmware
-iwl6000-firmware
-iwl6000g2a-firmware
-iwl6050-firmware
-kbd
-kernel-firmware
-libertas-usb8388-firmware
-openssh-server
-postfix
-policycoreutils
-ql2100-firmware
-ql2200-firmware
-ql23xx-firmware
-ql2400-firmware
-ql2500-firmware
-redhat-logos
-rt61pci-firmware
-rt73usb-firmware
-selinux-policy
-selinux-policy-targeted
-upstart
-xorg-x11-drv-ati-firmware
-zd1211-firmware
cronie-anacron
bzip2
cobbler
cobbler-web
cronie
crontabs
dnsmasq
fence-agents
fuel-library
httpd
logrotate
nginx
openstack-keystone
openssh-clients
postgresql-server
postgresql-libs
postgresql
python-alembic
python-amqplib
python-anyjson
python-babel
python-ceilometerclient
python-cinderclient
python-crypto
python-decorator
python-django
python-fabric
python-fysom
python-heatclient
python-iso8601
python-jinja2
python-jsonschema
python-keystoneclient
python-keystonemiddleware
python-kombu
python-mako
python-markupsafe
python-muranoclient
python-netaddr
python-neutronclient
python-netifaces
python-novaclient
python-oslo-config
python-paste
python-ply
python-psycopg2
python-requests
python-saharaclient
python-simplejson
python-six
python-sqlalchemy
python-stevedore
python-urllib3
python-webpy
python-wsgilog
python-wsgiref
PyYAML
python-novaclient
python-networkx-core
pytz
rabbitmq-server
rsync
mcollective
puppet
rubygem-activesupport
rubygem-amqp
rubygem-mcollective-client
rubygem-symboltable
rubygem-rest-client
rubygem-raemon
rubygem-net-ssh
rubygem-net-ssh-gateway
rubygem-net-ssh-multi
screen
send2syslog
sudo
supervisor
sysstat
tar
tftp-server
vim
xinetd
yum-plugin-priorities
%end
%post
# randomize root password and lock root account
dd if=/dev/urandom count=50 | md5sum | passwd --stdin root
passwd -l root
# create necessary devices
/sbin/MAKEDEV /dev/console
# cleanup unwanted stuff
# ami-creator requires grub during the install, so we remove it (and
# its dependencies) in %post
rpm -e grub redhat-logos
rm -rf /boot
# some packages get installed even though we ask for them not to be,
# and they don't have any external dependencies that should make
# anaconda install them
rpm -e MAKEDEV ethtool upstart iputils policycoreutils iptables \
iproute
# Remove files that are known to take up lots of space but leave
# directories intact since those may be required by new rpms.
# locales
# nuking the locales breaks things. Lets not do that anymore
# strip most of the languages from the archive.
localedef --delete-from-archive $(localedef --list-archive | \
grep -v -i ^en | xargs )
# prep the archive template
mv /usr/lib/locale/locale-archive /usr/lib/locale/locale-archive.tmpl
# rebuild archive
/usr/sbin/build-locale-archive
#empty the template
:>/usr/lib/locale/locale-archive.tmpl
# man pages and documentation
find /usr/share/{man,doc,info,gnome/help} \
-type f | xargs /bin/rm
# sln
rm -f /sbin/sln
# ldconfig
rm -rf /etc/ld.so.cache
rm -rf /var/cache/ldconfig/*
rm -rf /var/cache/yum/*
# Suppress hiera warnings
mkdir -p /etc/puppet /var/lib/fuel/ibp
touch /etc/puppet/hiera.yaml /var/lib/hiera/common.yaml
# Sudo does not need TTYs
sed -i '/requiretty/s/^/#/g' /etc/sudoers
# Remove all getty services/slices/units (LP#1508364)
find /usr/lib/systemd/system -name "*getty*" -delete
# Mask unecessary services
for service in dev-mqueue.mount dev-hugepages.mount \
systemd-remount-fs.service sys-kernel-config.mount \
sys-kernel-debug.mount sys-fs-fuse-connections.mount \
display-manager.service graphical.target \
auditd.service firewalld.service \
network.service network-online.target network.target \
NetworkManager-wait-online.service NetworkManager.service \
systemd-logind.service dracut-pre-udev.service \
systemd-udevd.service swap.target \
dbus-org.freedesktop.hostname1.service systemd-hostnamed.service \
proc-sys-fs-binfmt_misc.automount kdump.service \
cryptsetup.target systemd-modules-load.service \
tuned.service sysstat.service microcode.service \
systemd-binfmt.service systemd-reboot.service \
NetworkManager-dispatcher.service irqbalance.service \
systemd-initctl.socket systemd-shutdownd.socket \
system.slice systemd-ask-password-plymouth.path systemd-ask-password-wall.path \
systemd-journal-flush.service systemd-journald.service systemd-journald.socket; do
ln -snf /dev/null /etc/systemd/system/${service}
done
# Some services should be disabled instead of masked,
# just because they use in some containers
for service in crond.service rsyslog.service xinetd.service; do
[ -L /etc/systemd/system/multi-user.target.wants/${service} ] && \
rm -f /etc/systemd/system/multi-user.target.wants/${service}
done
# Set default target to multi-user.target
ln -snf /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
# Add service that starts start.sh on every container launch
cat << 'EOF' > /etc/systemd/system/start-container.service
[Unit]
Description=Container Startup Script
Requires=dbus.socket
ConditionFileExecutable=/usr/local/bin/start.sh
After=dbus.service
[Service]
Type=oneshot
ExecStart=/bin/bash -c "/usr/local/bin/start.sh > /var/tmp/setup.log 2>&1"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
%end

View File

@@ -1,31 +0,0 @@
#!/bin/bash -xe
#
# This script imports a raw image into Docker. It takes two
# arguments: the name of the image file, and the tag to assign to the
# Docker image that it creates.
usage() {
echo "usage: $(basename $0) <image> <tag>"
exit 1
}
image="$1"
tag="$2"
if [ -z "$image" ] || [ -z "$tag" ]; then
usage
fi
mount="$(mktemp -d --tmpdir)"
mount -o loop "$image" "$mount"
cd "$mount"
#this tar seems to cause issues such as rpmdb corruption
#tar -cpSf - --acls --selinux --xattrs * | docker import - "$tag"
tar --numeric-owner -c . | docker import - "$tag"
cd - >& /dev/null
umount "$mount"
rmdir "$mount"

View File

@@ -1,70 +0,0 @@
#!/bin/bash -xe
# Clean rpm locks before puppet run.
# See ticket https://bugs.launchpad.net/fuel/+bug/1339236
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=file:///repo/os/x86_64/
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=file:///mos-repo/
gpgcheck=0
EOF
for repo in ${EXTRA_RPM_REPOS}; do
IFS=, read -a repo_args <<< "$repo"
cat << EOF >> /etc/yum.repos.d/nailgun.repo
[extra-repo-${repo_args[0]}]
name=MOS Extra Repo ${repo_args[0]}
baseurl=file:///extra-repos/${repo_args[0]}
gpgcheck=0
EOF
done
# Install necessary packages
yum install -y --quiet \
sudo \
ami-creator \
python-daemon \
httpd
sed -i '/requiretty/s/^/#/g' /etc/sudoers
# Add extra repositories to extra-repos.ks
# This file will be included in fuel-centos.ks later
touch /root/extra-repos.ks
for repo in ${EXTRA_RPM_REPOS}; do
IFS=, read -a repo_args <<< "$repo"
echo "repo --name='MOS Extra Repo ${repo_args[0]}' --baseurl=http://127.0.0.1/extra-repos/${repo_args[0]}/" >> /root/extra-repos.ks
done
# Create loop devices if needed for ami-creator to setup image
for loopdev in $(seq 1 9); do
mknod "/dev/loop${loopdev}" -m0660 b 7 ${loopdev} ||:
done
# Create directory for repolinks and create them
mkdir -p /var/www/html/repo
ln -s /repo/os /var/www/html/repo/os
ln -s /mos-repo /var/www/html/
if [ -n "${EXTRA_RPM_REPOS}" ]; then
ln -s /extra-repos /var/www/html/
fi
# Start webserver and wait for it to be up
/usr/sbin/httpd &
/usr/lib/systemd/systemd-localed &
cd /export
ami-creator -c /root/fuel-centos.ks -n fuel-centos

View File

@@ -1,20 +0,0 @@
# fuel/keystone
FROM fuel/centos
MAINTAINER Łukasz Oleś loles@mirantis.com
WORKDIR /root
ENV container docker
ENV DOCKER_PORT _PORT_
ENV EXTRA_RPM_REPOS _EXTRA_RPM_REPOS_
ADD etc /etc
ADD start.sh /usr/local/bin/
ADD setup.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/{setup,start}.sh
EXPOSE 35357 5000
CMD ["/usr/sbin/init"]

View File

@@ -1,65 +0,0 @@
#!/bin/bash -xe
rm -rf /etc/yum.repos.d/*
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/repo/os/x86_64/
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/mos-repo/
gpgcheck=0
EOF
for repo in ${EXTRA_RPM_REPOS}; do
IFS=, read -a repo_args <<< "$repo"
cat << EOF >> /etc/yum.repos.d/nailgun.repo
[extra-repo-${repo_args[0]}]
name=MOS Extra Repo ${repo_args[0]}
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/extra-repos/${repo_args[0]}
gpgcheck=0
EOF
done
yum clean expire-cache
yum update -y
packages="os-client-config python-tablib python-unicodecsv rubygem-thread_safe"
echo $packages | xargs -n1 yum install -y
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
/etc/puppet/modules/nailgun/examples/keystone-only.pp || [[ $? == 2 ]]
mkdir -p /etc/systemd/system/openstack-keystone.service.d/
cat << EOF > /etc/systemd/system/openstack-keystone.service.d/restart.conf
[Service]
Restart=on-failure
RestartSec=5
EOF
systemctl enable openstack-keystone.service
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=file:/var/www/nailgun/centos/x86_64
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=file:/var/www/nailgun/mos-centos/x86_64
gpgcheck=0
EOF
yum clean all
systemctl enable start-container.service

View File

@@ -1,13 +0,0 @@
#!/bin/bash -xe
# Clean rpm locks before puppet run.
# See ticket https://bugs.launchpad.net/fuel/+bug/1339236
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
--logdest /var/log/puppet/keystone.log \
/etc/puppet/modules/nailgun/examples/keystone-only.pp || [[ $? == 2 ]]

View File

@@ -1,18 +0,0 @@
# fuel/mcollective
FROM fuel/centos
MAINTAINER Aleksandr Didenko adidenko@mirantis.com
WORKDIR /root
ENV container docker
ENV DOCKER_PORT _PORT_
ENV EXTRA_RPM_REPOS _EXTRA_RPM_REPOS_
ADD etc /etc
ADD start.sh /usr/local/bin/
ADD setup.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/{setup,start}.sh
CMD ["/usr/sbin/init"]

View File

@@ -1,64 +0,0 @@
#!/bin/bash -xe
rm -rf /etc/yum.repos.d/*
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/repo/os/x86_64/
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/mos-repo/
gpgcheck=0
EOF
for repo in ${EXTRA_RPM_REPOS}; do
IFS=, read -a repo_args <<< "$repo"
cat << EOF >> /etc/yum.repos.d/nailgun.repo
[extra-repo-${repo_args[0]}]
name=MOS Extra Repo ${repo_args[0]}
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/extra-repos/${repo_args[0]}
gpgcheck=0
EOF
done
yum clean expire-cache
yum update -y
packages="sudo mcollective shotgun fuel-agent fuel-provisioning-scripts psmisc daemonize"
echo $packages | xargs -n1 yum install -y
# /var/lib/fuel/ibp is a mount point for IBP host volume
mkdir -p /var/lib/hiera /var/lib/fuel/ibp
touch /etc/puppet/hiera.yaml /var/lib/hiera/common.yaml
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
/etc/puppet/modules/nailgun/examples/mcollective-only.pp || [[ $? == 2 ]]
#FIXME(mattymo): Workaround to make diagnostic snapshots work
mkdir -p /opt/nailgun/bin /var/www/nailgun/dump
ln -s /usr/bin/nailgun_dump /opt/nailgun/bin/nailgun_dump
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=file:/var/www/nailgun/centos/x86_64
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=file:/var/www/nailgun/mos-centos/x86_64
gpgcheck=0
EOF
yum clean all
systemctl enable start-container.service

View File

@@ -1,21 +0,0 @@
#!/bin/bash
# Clean rpm locks before puppet run.
# See ticket https://bugs.launchpad.net/fuel/+bug/1339236
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
puppet apply --debug --verbose --color false --detailed-exitcodes \
--logdest /var/log/puppet/mcollective-hiera.log \
/etc/puppet/modules/nailgun/examples/hiera-for-container.pp
puppet apply --debug --verbose --color false --detailed-exitcodes \
--logdest /var/log/puppet/mcollective.log \
/etc/puppet/modules/nailgun/examples/mcollective-only.pp
for loopdev in $(seq 1 9); do
mknod "/dev/loop${loopdev}" -m0660 b 7 ${loopdev} || :
done
#Stop daemon and restart it in the foreground
systemctl restart mcollective.service

View File

@@ -1,101 +0,0 @@
.PHONY: docker
containers:=astute cobbler mcollective nailgun keystone nginx ostf rsync rsyslog rabbitmq postgres
REPO_CONTAINER:=fuel-repo-container
docker: $(BUILD_DIR)/docker/build.done
# Lrzip all containers into single archive
$(BUILD_DIR)/docker/build.done: \
$(BUILD_DIR)/docker/fuel-centos.done \
$(BUILD_DIR)/docker/sources.done
sudo docker save fuel/centos busybox $(foreach cnt,$(containers), fuel/$(cnt)_$(PRODUCT_VERSION):latest) > $(BUILD_DIR)/docker/fuel-images.tar
lrzip -L2 -U -D -f $(BUILD_DIR)/docker/fuel-images.tar -o $(BUILD_DIR)/docker/$(DOCKER_ART_NAME)
rm -f $(BUILD_DIR)/docker/fuel-images.tar
sudo docker rm -f "$(REPO_CONTAINER)" || true
$(ACTION.TOUCH)
define build_container
$(BUILD_DIR)/docker/build.done: $(BUILD_DIR)/docker/$1.done
$(BUILD_DIR)/docker/$1.done: \
$(BUILD_DIR)/mirror/centos/build.done \
$(BUILD_DIR)/repos/repos.done \
$(BUILD_DIR)/packages/rpm/build.done \
$(BUILD_DIR)/docker/fuel-centos.done \
$(BUILD_DIR)/docker/repo-container-up.done
@echo ""
@echo "========================================"
@echo "Building container '$1'"
mkdir -p "$(BUILD_DIR)/docker/containers"
rm -rf $(BUILD_DIR)/docker/$1
cp -a $(SOURCE_DIR)/docker/$1 $(BUILD_DIR)/docker/$1
REPO_PORT=`sudo docker port $(REPO_CONTAINER) 80 | cut -d':' -f2` && \
sed -e "s/_PORT_/$$$${REPO_PORT}/" -i $(BUILD_DIR)/docker/$1/Dockerfile
test -n "$(EXTRA_RPM_REPOS)" || sed -e "/_EXTRA_RPM_REPOS_/d" -i $(BUILD_DIR)/docker/$1/Dockerfile
sed -e "s|_EXTRA_RPM_REPOS_|$(EXTRA_RPM_REPOS)|" -i $(BUILD_DIR)/docker/$1/Dockerfile
mkdir -p $(BUILD_DIR)/docker/$1/etc/fuel
cp $(SOURCE_DIR)/docker/docker-astute.yaml $(BUILD_DIR)/docker/$1/etc/fuel/astute.yaml
sudo docker build --force-rm -t fuel/$1_$(PRODUCT_VERSION) $(BUILD_DIR)/docker/$1
sudo docker run --name=FUEL_$1_$(PRODUCT_VERSION) \
--net=bridge -d -i -t --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro fuel/$1_$(PRODUCT_VERSION)
sudo docker exec -i FUEL_$1_$(PRODUCT_VERSION) /usr/local/bin/setup.sh 2>&1 \
|| (echo "CONTAINER BUILD FAILED, container '$1'"; exit 1)
sudo docker commit FUEL_$1_$(PRODUCT_VERSION) fuel/$1_$(PRODUCT_VERSION):latest
sudo docker stop FUEL_$1_$(PRODUCT_VERSION)
@echo "CONTAINER BUILD SUCCEEDED, container '$1'."
@echo "========================================"
@echo ""
$$(ACTION.TOUCH)
endef
$(BUILD_DIR)/docker/base-images.done: \
$(BUILD_DIR)/mirror/docker/build.done
for container in $(LOCAL_MIRROR_DOCKER_BASEURL)/*.xz; do xz -dkc -T0 $$container | sudo docker load; done
$(ACTION.TOUCH)
$(BUILD_DIR)/docker/fuel-centos.done: \
$(BUILD_DIR)/docker/base-images.done \
$(BUILD_DIR)/mirror/centos/build.done \
$(BUILD_DIR)/packages/rpm/build.done
rm -rf $(BUILD_DIR)/docker/fuel-centos-build
cp -a $(SOURCE_DIR)/docker/fuel-centos-build $(BUILD_DIR)/docker/fuel-centos-build
test -n "$(EXTRA_RPM_REPOS)" || sed -e "/_EXTRA_RPM_REPOS_/d" -i $(BUILD_DIR)/docker/fuel-centos-build/Dockerfile
sed -e "s|_CENTOS_RELEASE_|$(CENTOS_RELEASE)|g" -i $(BUILD_DIR)/docker/fuel-centos-build/Dockerfile
sed -e "s|_EXTRA_RPM_REPOS_|$(EXTRA_RPM_REPOS)|" -i $(BUILD_DIR)/docker/fuel-centos-build/Dockerfile
sed -e "s|_PROXY_|$(PROXY_CONFIG)|g" -i $(BUILD_DIR)/docker/fuel-centos-build/Dockerfile
sudo docker build -t fuel/fuel-centos-build $(BUILD_DIR)/docker/fuel-centos-build
mkdir -p $(BUILD_DIR)/docker/fuel-centos/
echo ">>> Generating fuel/centos base image..."
sudo docker -D run --name=FUEL_CENTOS_$(PRODUCT_VERSION) --net=bridge -d -i -t --privileged \
-v $(LOCAL_MIRROR_CENTOS):/repo:ro \
-v $(LOCAL_MIRROR_MOS_CENTOS):/mos-repo:ro \
-v $(LOCAL_MIRROR)/extra-repos:/extra-repos:ro \
-v $(BUILD_DIR)/docker/fuel-centos:/export \
fuel/fuel-centos-build
sudo docker exec -i FUEL_CENTOS_$(PRODUCT_VERSION) /usr/local/bin/start.sh 2>&1
echo "<<< Image generated successfully."
echo ">>> Converting image..."
sudo $(SOURCE_DIR)/docker/fuel-centos-build/img2docker.sh $(BUILD_DIR)/docker/fuel-centos/fuel-centos.img fuel/centos
echo "<<< Image converted successfully."
echo "$@ done."
$(ACTION.TOUCH)
$(BUILD_DIR)/docker/repo-container-up.done: \
$(BUILD_DIR)/docker/fuel-centos.done
-sudo docker rm -f "$(REPO_CONTAINER)"
sudo docker -D run --name "$(REPO_CONTAINER)" -d -p 80 \
-v $(LOCAL_MIRROR_CENTOS):/var/www/html/repo \
-v $(LOCAL_MIRROR_MOS_CENTOS):/var/www/html/mos-repo \
-v $(LOCAL_MIRROR)/extra-repos:/var/www/html/extra-repos \
fuel/centos /usr/sbin/apachectl -DFOREGROUND
REPO_PORT=`sudo docker port $(REPO_CONTAINER) 80 | cut -d':' -f2` && \
wget -t10 -T1 -O /dev/null --waitretry 1 --retry-connrefused --no-proxy http://127.0.0.1:$${REPO_PORT}/repo/os/x86_64/repodata/repomd.xml && \
wget -t10 -T1 -O /dev/null --waitretry 1 --retry-connrefused --no-proxy http://127.0.0.1:$${REPO_PORT}/mos-repo/repodata/repomd.xml
$(ACTION.TOUCH)
$(BUILD_DIR)/docker/sources.done: \
$(find-files $(SOURCE_DIR)/docker)
mkdir -p $(BUILD_DIR)/docker/sources $(BUILD_DIR)/docker/utils
find $(SOURCE_DIR)/docker -mindepth 1 -type d -not -name '*fuel-centos-build*' | xargs cp -r --target-directory=$(BUILD_DIR)/docker/sources
$(ACTION.TOUCH)
$(foreach cnt,$(containers),$(eval $(call build_container,$(cnt))))

View File

@@ -1,22 +0,0 @@
# fuel-nailgun
FROM fuel/centos
MAINTAINER Matthew Mosesohn mmosesohn@mirantis.com
WORKDIR /root
ENV container docker
ENV DOCKER_PORT _PORT_
ENV EXTRA_RPM_REPOS _EXTRA_RPM_REPOS_
ADD etc /etc
ADD start.sh /usr/local/bin/
ADD setup.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/{setup,start}.sh
EXPOSE 8001
VOLUME ["/usr/share/nailgun/static", "/etc/nailgun"]
CMD ["/usr/sbin/init"]

View File

@@ -1,58 +0,0 @@
#!/bin/bash -xe
rm -rf /etc/yum.repos.d/*
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/repo/os/x86_64/
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/mos-repo/
gpgcheck=0
EOF
for repo in ${EXTRA_RPM_REPOS}; do
IFS=, read -a repo_args <<< "$repo"
cat << EOF >> /etc/yum.repos.d/nailgun.repo
[extra-repo-${repo_args[0]}]
name=MOS Extra Repo ${repo_args[0]}
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/extra-repos/${repo_args[0]}
gpgcheck=0
EOF
done
yum clean expire-cache
yum update -y
mkdir -p /root/.ssh
chmod 700 /root/.ssh
touch /root/.ssh/id_rsa.pub
chmod 600 /root/.ssh/id_rsa.pub
yum -y install python-editor
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
/etc/puppet/modules/nailgun/examples/nailgun-only.pp || [[ $? == 2 ]]
mkdir -p /var/log/remote /var/www/nailgun
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=file:/var/www/nailgun/centos/x86_64
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=file:/var/www/nailgun/mos-centos/x86_64
gpgcheck=0
EOF
yum clean all
systemctl enable start-container.service

View File

@@ -1,26 +0,0 @@
#!/bin/bash
# Clean rpm locks before puppet run.
# See ticket https://bugs.launchpad.net/fuel/+bug/1339236
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
#Run puppet to apply custom config
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
--logdest /var/log/puppet/nailgun.log \
/etc/puppet/modules/nailgun/examples/nailgun-only.pp
#FIXME(dteselkin): for some funny reason /usr/share/nailgun/static
# is empty after puppet apply, despite the fact that
# package contains the files
# Reinstall package as a dirty workaround
if rpm -V fuel-nailgun | grep -q missing; then
yum -y --quiet reinstall fuel-nailgun
fi
systemctl restart supervisord.service

View File

@@ -1,18 +0,0 @@
# fuel-nginx
FROM fuel/centos
MAINTAINER Matthew Mosesohn mmosesohn@mirantis.com
ENV container docker
ENV DOCKER_PORT _PORT_
ENV EXTRA_RPM_REPOS _EXTRA_RPM_REPOS_
ADD etc /etc
ADD start.sh /usr/local/bin/
ADD setup.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/{setup,start}.sh
EXPOSE 8000 8080
CMD ["/usr/sbin/init"]

View File

@@ -1,64 +0,0 @@
#!/bin/bash -xe
rm -rf /etc/yum.repos.d/*
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/repo/os/x86_64/
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/mos-repo/
gpgcheck=0
EOF
for repo in ${EXTRA_RPM_REPOS}; do
IFS=, read -a repo_args <<< "$repo"
cat << EOF >> /etc/yum.repos.d/nailgun.repo
[extra-repo-${repo_args[0]}]
name=MOS Extra Repo ${repo_args[0]}
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/extra-repos/${repo_args[0]}
gpgcheck=0
EOF
done
yum clean expire-cache
yum update -y
mkdir -p /var/www/nailgun
chmod 755 /var/www/nailgun
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
/etc/puppet/modules/nailgun/examples/nginx-only.pp || [[ $? == 2 ]]
mkdir -p /etc/systemd/system/nginx.service.d/
cat << EOF > /etc/systemd/system/nginx.service.d/restart.conf
[Service]
Restart=on-failure
RestartSec=5
EOF
systemctl enable nginx.service
# FIXME (dteselkin): Ideally we should make a package for all these systemd
# unit files instead of hardcoding them in a setup script
# #1519412
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=file:/var/www/nailgun/centos/x86_64
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=file:/var/www/nailgun/mos-centos/x86_64
gpgcheck=0
EOF
yum clean all
systemctl enable start-container.service

View File

@@ -1,17 +0,0 @@
#!/bin/bash
# Clean rpm locks before puppet run.
# See ticket https://bugs.launchpad.net/fuel/+bug/1339236
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
#Correct permissions after docker clobbers them on export
chmod -R 755 /var/www/nailgun
chmod -R 755 /var/www/nailgun/* 2>/dev/null
chmod -R 755 /usr/share/nailgun/static 2>/dev/null
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
--logdest /var/log/puppet/nginx.log \
/etc/puppet/modules/nailgun/examples/nginx-only.pp

View File

@@ -1,18 +0,0 @@
# fuel/ostf
FROM fuel/centos
MAINTAINER Matthew Mosesohn mmosesohn@mirantis.com
ENV container docker
ENV DOCKER_PORT _PORT_
ENV EXTRA_RPM_REPOS _EXTRA_RPM_REPOS_
ADD etc /etc
ADD setup.sh /usr/local/bin/
ADD start.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/{setup,start}.sh
EXPOSE 8777
CMD ["/usr/sbin/init"]

View File

@@ -1,58 +0,0 @@
#!/bin/bash -xe
rm -rf /etc/yum.repos.d/*
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/repo/os/x86_64/
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/mos-repo/
gpgcheck=0
EOF
for repo in ${EXTRA_RPM_REPOS}; do
IFS=, read -a repo_args <<< "$repo"
cat << EOF >> /etc/yum.repos.d/nailgun.repo
[extra-repo-${repo_args[0]}]
name=MOS Extra Repo ${repo_args[0]}
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/extra-repos/${repo_args[0]}
gpgcheck=0
EOF
done
yum clean expire-cache
yum update -y
#FIXME(dteselkin): install the packages below explicitely to
# fix their dependenceis BEFORE puppet run
packages="python-fuelclient postgresql-libs python-editor python-unicodecsv "
packages+="python-saharaclient python-muranoclient python-cliff"
echo $packages | xargs -n1 yum install -y
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
/etc/puppet/modules/nailgun/examples/ostf-only.pp || [[ $? == 2 ]]
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=file:/var/www/nailgun/centos/x86_64
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=file:/var/www/nailgun/mos-centos/x86_64
gpgcheck=0
EOF
yum clean all
systemctl enable start-container.service

View File

@@ -1,13 +0,0 @@
#!/bin/bash
# Clean rpm locks before puppet run.
# See ticket https://bugs.launchpad.net/fuel/+bug/1339236
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
--logdest /var/log/puppet/ostf.log \
/etc/puppet/modules/nailgun/examples/ostf-only.pp

View File

@@ -1,18 +0,0 @@
# fuel/postgres
FROM fuel/centos
MAINTAINER Aleksandr Didenko adidenko@mirantis.com
ENV container docker
ENV DOCKER_PORT _PORT_
ENV EXTRA_RPM_REPOS _EXTRA_RPM_REPOS_
ADD etc /etc
ADD start.sh /usr/local/bin/
ADD setup.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/{setup,start}.sh
EXPOSE 5432
CMD ["/usr/sbin/init"]

View File

@@ -1,53 +0,0 @@
#!/bin/bash -xe
rm -rf /etc/yum.repos.d/*
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/repo/os/x86_64/
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/mos-repo/
gpgcheck=0
EOF
for repo in ${EXTRA_RPM_REPOS}; do
IFS=, read -a repo_args <<< "$repo"
cat << EOF >> /etc/yum.repos.d/nailgun.repo
[extra-repo-${repo_args[0]}]
name=MOS Extra Repo ${repo_args[0]}
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/extra-repos/${repo_args[0]}
gpgcheck=0
EOF
done
yum clean expire-cache
yum update -y
touch /etc/sysconfig/network
mkdir -p /var/lib/hiera
touch /var/lib/hiera/common.yaml
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=file:/var/www/nailgun/centos/x86_64
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=file:/var/www/nailgun/mos-centos/x86_64
gpgcheck=0
EOF
yum clean all
systemctl enable start-container.service

View File

@@ -1,23 +0,0 @@
#!/bin/bash
# Clean rpm locks before puppet run.
# See ticket https://bugs.launchpad.net/fuel/+bug/1339236
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
# Because /var/lib/pgsql is mounted as a volume,
# reinstall if its files are missing
if rpm -V postgresql-server | grep -q missing; then
yum reinstall -q -y postgresql-server
fi
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
--logdest /var/log/puppet/postgres.log \
/etc/puppet/modules/nailgun/examples/postgres-only.pp
systemctl enable postgresql.service

View File

@@ -1,18 +0,0 @@
# fuel/rabbitmq
FROM fuel/centos
MAINTAINER Aleksandr Didenko adidenko@mirantis.com
ENV container docker
ENV DOCKER_PORT _PORT_
ENV EXTRA_RPM_REPOS _EXTRA_RPM_REPOS_
ADD etc /etc
ADD start.sh /usr/local/bin/
ADD setup.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/{setup,start}.sh
EXPOSE 4369 5672 15672 61613
CMD ["/usr/sbin/init"]

View File

@@ -1,84 +0,0 @@
#!/bin/bash -xe
rm -rf /etc/yum.repos.d/*
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/repo/os/x86_64/
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/mos-repo/
gpgcheck=0
EOF
for repo in ${EXTRA_RPM_REPOS}; do
IFS=, read -a repo_args <<< "$repo"
cat << EOF >> /etc/yum.repos.d/nailgun.repo
[extra-repo-${repo_args[0]}]
name=MOS Extra Repo ${repo_args[0]}
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/extra-repos/${repo_args[0]}
gpgcheck=0
EOF
done
yum clean expire-cache
yum update -y
mkdir -p /var/lib/hiera /var/log/rabbitmq
touch /var/lib/hiera/common.yaml
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
/etc/puppet/modules/nailgun/examples/rabbitmq-only.pp || [[ $? == 2 ]]
cat << EOF > /etc/systemd/system/rabbitmq-server.service
[Unit]
Description=RabbitMQ broker
After=syslog.target network.target
[Service]
NotifyAccess=all
User=rabbitmq
Group=rabbitmq
WorkingDirectory=/var/lib/rabbitmq
ExecStartPre=chown -R rabbitmq:rabbitmq /var/lib/rabbitmq
ExecStart=/usr/sbin/rabbitmq-server
ExecStop=/usr/lib/rabbitmq/bin/rabbitmqctl stop
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl reenable rabbitmq-server.service
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=file:/var/www/nailgun/centos/x86_64
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=file:/var/www/nailgun/mos-centos/x86_64
gpgcheck=0
EOF
yum clean all
systemctl enable start-container.service
rm -Rf /var/lib/rabbitmq/mnesia/*

View File

@@ -1,16 +0,0 @@
#!/bin/bash -xe
# Clean rpm locks before puppet run.
# See ticket https://bugs.launchpad.net/fuel/+bug/1339236
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
mkdir -p /var/log/rabbitmq
chown -R rabbitmq:rabbitmq /var/log/rabbitmq
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
--logdest /var/log/puppet/rabbitmq.log \
/etc/puppet/modules/nailgun/examples/rabbitmq-only.pp || [[ $? == 2 ]]

View File

@@ -1,17 +0,0 @@
# fuel/rsync
FROM fuel/centos
MAINTAINER Matthew Mosesohn mmosesohn@mirantis.com
ENV container docker
ENV DOCKER_PORT _PORT_
ENV EXTRA_RPM_REPOS _EXTRA_RPM_REPOS_
ADD etc /etc
ADD setup.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/setup.sh
EXPOSE 873
CMD ["/usr/sbin/init"]

View File

@@ -1,62 +0,0 @@
#!/bin/bash -xe
rm -rf /etc/yum.repos.d/*
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/repo/os/x86_64/
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/mos-repo/
gpgcheck=0
EOF
for repo in ${EXTRA_RPM_REPOS}; do
IFS=, read -a repo_args <<< "$repo"
cat << EOF >> /etc/yum.repos.d/nailgun.repo
[extra-repo-${repo_args[0]}]
name=MOS Extra Repo ${repo_args[0]}
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/extra-repos/${repo_args[0]}
gpgcheck=0
EOF
done
yum clean expire-cache
yum update -y
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
/etc/puppet/modules/nailgun/examples/puppetsync-only.pp || [[ $? == 2 ]]
mkdir -p /etc/systemd/system/rsyncd.service.d/
cat << EOF > /etc/systemd/system/rsyncd.service.d/restart.conf
[Service]
Restart=on-failure
RestartSec=5
EOF
systemctl enable xinetd.service rsyncd.service
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=file:/var/www/nailgun/centos/x86_64
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=file:/var/www/nailgun/mos-centos/x86_64
gpgcheck=0
EOF
yum clean all
#systemctl mask start-container.service

View File

@@ -1,16 +0,0 @@
# fuel/rsyslog
FROM fuel/centos
MAINTAINER Aleksandr Didenko adidenko@mirantis.com
ENV container docker
ENV DOCKER_PORT _PORT_
ADD etc /etc
ADD setup.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/setup.sh
EXPOSE 514 514/udp
CMD ["/usr/sbin/init"]

View File

@@ -1,54 +0,0 @@
#!/bin/bash -xe
rm -rf /etc/yum.repos.d/*
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/repo/os/x86_64/
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=http://$(route -n | awk '/^0.0.0.0/ {print $2}'):${DOCKER_PORT}/mos-repo/
gpgcheck=0
EOF
yum clean expire-cache
yum update -y
touch /etc/puppet/hiera.yaml
systemctl daemon-reload
puppet apply --debug --verbose --color false --detailed-exitcodes \
/etc/puppet/modules/nailgun/examples/rsyslog-only.pp || [[ $? == 2 ]]
mkdir -p /etc/systemd/system/rsyslog.service.d/
cat << EOF > /etc/systemd/system/rsyslog.service.d/restart.conf
[Service]
Restart=on-failure
RestartSec=5
EOF
systemctl enable rsyslog.service
cat << EOF > /etc/yum.repos.d/nailgun.repo
[nailgun]
name=Nailgun Local Repo
baseurl=file:/var/www/nailgun/centos/x86_64
gpgcheck=0
[mos]
name=MOS Local Repo
baseurl=file:/var/www/nailgun/mos-centos/x86_64
gpgcheck=0
EOF
yum clean all
#systemctl mask start-container.service

View File

@@ -1,7 +1,5 @@
#!/bin/bash
LOGFILE=${LOGFILE:-/var/log/puppet/bootstrap_admin_node.log}
# DEPLOYMENT_MODE could be either 'host' or 'docker'
DEPLOYMENT_MODE=${DEPLOYMENT_MODE:-host}
mkdir -p /var/log/puppet
exec > >(tee -i "${LOGFILE}")
exec 2>&1
@@ -160,11 +158,7 @@ function ifname_valid {
return 1
}
if [[ $DEPLOYMENT_MODE = 'docker' ]]; then
yum install -y fuel-dockerctl fuel-docker-images
else
yum install -y fuel-utils
fi
yum install -y fuel-utils
# LANG variable is a workaround for puppet-3.4.2 bug. See LP#1312758 for details
@@ -348,62 +342,15 @@ if [ ${old_sysctl_vm_value} -lt 65535 ]; then
sysctl -w vm.min_free_kbytes=65535
fi
if [[ $DEPLOYMENT_MODE = 'docker' ]]; then
if [ -f /root/.build_images ]; then
#Fail on all errors
set -e
trap fail EXIT
echo "Loading Fuel base image for Docker..."
docker load -i /var/www/nailgun/docker/images/fuel-images.tar
echo "Building Fuel Docker images..."
WORKDIR=$(mktemp -d /tmp/docker-buildXXX)
SOURCE=/var/www/nailgun/docker
REPO_CONT_ID=$(docker -D run -d -p 80 -v /var/www/nailgun:/var/www/nailgun fuel/centos sh -c 'mkdir -p /var/www/html/repo/os;ln -sf /var/www/nailgun/centos/x86_64 /var/www/html/repo/os/x86_64;ln -s /var/www/nailgun/mos-centos/x86_64 /var/www/html/mos-repo;/usr/sbin/apachectl -DFOREGROUND')
RANDOM_PORT=$(docker port $REPO_CONT_ID 80 | cut -d':' -f2)
for imagesource in /var/www/nailgun/docker/sources/*; do
if ! [ -f "$imagesource/Dockerfile" ]; then
echo "Skipping ${imagesource}..."
continue
fi
image=$(basename "$imagesource")
cp -R "$imagesource" $WORKDIR/$image
mkdir -p $WORKDIR/$image/etc
cp -R /etc/puppet /etc/fuel $WORKDIR/$image/etc
sed -e "s/_PORT_/${RANDOM_PORT}/" -i $WORKDIR/$image/Dockerfile
sed -r -e 's/^"?PRODUCTION"?:.*/PRODUCTION: "docker-build"/' -i $WORKDIR/$image/etc/fuel/astute.yaml
docker build -t fuel/${image}_${FUEL_RELEASE} $WORKDIR/$image
done
docker rm -f $REPO_CONT_ID
rm -rf "$WORKDIR"
#Remove trap for normal deployment
trap - EXIT
set +e
else
echo "Loading docker images. (This may take a while)"
docker load -i /var/www/nailgun/docker/images/fuel-images.tar
fi
fi
if [ ${old_sysctl_vm_value} -lt 65535 ]; then
echo "Restore sysctl vm.min_free_kbytes value..."
sysctl -w vm.min_free_kbytes=${old_sysctl_vm_value}
fi
# apply puppet
if [[ $DEPLOYMENT_MODE = 'docker' ]]; then
puppet apply --detailed-exitcodes -d -v /etc/puppet/modules/nailgun/examples/host-only.pp
if [ $? -ge 4 ];then
/etc/puppet/modules/fuel/examples/deploy.sh
if [[ $? -ne 0 ]]; then
fail
fi
else
LOGFILE="${LOGFILE}" /etc/puppet/modules/fuel/examples/deploy.sh
if [[ $? -ne 0 ]]; then
fail
fi
fi
# Sync time

View File

@@ -285,7 +285,7 @@ cat << EOF > /tmp/partition.ks
part /boot --onpart=/dev/${bootdev}3
part /boot/efi --onpart=/dev/${bootdev}2
part pv.001 --ondisk=${tgtdrive} --size=25000 --grow
part pv.002 --ondisk=${tgtdrive} --size=20000
part pv.002 --ondisk=${tgtdrive} --size=10000
volgroup os pv.001
volgroup docker pv.002
logvol swap --vgname=os --recommended --name=swap
@@ -631,7 +631,7 @@ if [[ "$(tty)" == "/dev/tty1" && -f /etc/systemd/system/getty@tty1.service.d/aut
rm -Rf "/etc/systemd/system/getty@tty1.service.d"
/bin/systemctl daemon-reload
if [ -x /usr/local/sbin/bootstrap_admin_node.sh ]; then
DEPLOYMENT_MODE=host exec /usr/local/sbin/bootstrap_admin_node.sh
exec /usr/local/sbin/bootstrap_admin_node.sh
fi
fi
EOF

View File

@@ -42,7 +42,6 @@ $(BUILD_DIR)/iso/isoroot-centos.done: \
$(BUILD_DIR)/mirror/build.done \
$(BUILD_DIR)/mirror/make-changelog.done \
$(BUILD_DIR)/packages/build.done \
$(BUILD_DIR)/packages/build-late.done \
$(BUILD_DIR)/iso/isoroot-dotfiles.done
mkdir -p $(ISOROOT)
rsync -rp $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/ $(ISOROOT)
@@ -64,15 +63,6 @@ $(BUILD_DIR)/iso/isoroot-ubuntu.done: \
rsync -rp $(LOCAL_MIRROR)/ubuntu-packages.changelog $(ISOROOT)
$(ACTION.TOUCH)
########################
# DOCKER
########################
# DOCKER_ART_NAME is defined in /docker/module.mk
$(ISOROOT)/docker.done: \
$(BUILD_DIR)/docker/build.done \
$(BUILD_DIR)/packages/rpm/fuel-docker-images.done
$(ACTION.TOUCH)
########################
# Extra files
########################
@@ -132,8 +122,6 @@ $(ISOROOT)/bootstrap_admin_node.sh: $(SOURCE_DIR)/iso/bootstrap_admin_node.sh ;
$(ISOROOT)/send2syslog.py: $(BUILD_DIR)/repos/fuel-nailgun/bin/send2syslog.py ; $(ACTION.COPY)
$(BUILD_DIR)/repos/fuel-nailgun/bin/send2syslog.py: $(BUILD_DIR)/repos/fuel-nailgun.done
$(BUILD_DIR)/iso/isoroot.done: $(ISOROOT)/docker.done
########################
# Iso image root file system.
########################

View File

@@ -1,12 +0,0 @@
BASE_IMAGE_FILES:=centos.tar.xz busybox.tar.xz
MIRROR_DOCKER_BASEURL?=$(MIRROR_DOCKER)
# docker base image files
$(addprefix $(LOCAL_MIRROR_DOCKER_BASEURL)/,$(BASE_IMAGE_FILES)):
@mkdir -p $(@D)
wget -nv -O $@ $(MIRROR_DOCKER_BASEURL)/$(@F)
$(BUILD_DIR)/mirror/docker/base-images.done: \
$(addprefix $(LOCAL_MIRROR_DOCKER_BASEURL)/,$(BASE_IMAGE_FILES))
$(ACTION.TOUCH)

View File

@@ -1,13 +0,0 @@
.PHONY: clean-docker
# This module downloads ubuntu installation images.
include $(SOURCE_DIR)/mirror/docker/base-images.mk
clean: clean-docker
clean-docker:
-sudo sh -c "docker ps -aq | xargs --no-run-if-empty docker rm -f"
-sudo sh -c "docker images | awk '/fuel|none/ { print \$$3; }' | xargs --no-run-if-empty docker rmi -f"
$(BUILD_DIR)/mirror/docker/build.done: \
$(BUILD_DIR)/mirror/docker/base-images.done
$(ACTION.TOUCH)

View File

@@ -10,12 +10,10 @@ clean-mirror:
include $(SOURCE_DIR)/mirror/centos/module.mk
include $(SOURCE_DIR)/mirror/ubuntu/module.mk
include $(SOURCE_DIR)/mirror/docker/module.mk
$(BUILD_DIR)/mirror/build.done: \
$(BUILD_DIR)/mirror/centos/build.done \
$(BUILD_DIR)/mirror/ubuntu/build.done \
$(BUILD_DIR)/mirror/docker/build.done
$(BUILD_DIR)/mirror/ubuntu/build.done
$(ACTION.TOUCH)
$(BUILD_DIR)/mirror/make-changelog.done: $(BUILD_DIR)/mirror/build.done

View File

@@ -100,19 +100,6 @@ packages: $(BUILD_DIR)/packages/build.done
packages-rpm: $(BUILD_DIR)/packages/rpm/build.done
packages-deb: $(BUILD_DIR)/packages/deb/build.done
###################################
#### LATE PACKAGES ################
###################################
.PHONY: packages-late
$(BUILD_DIR)/packages/build-late.done: \
$(BUILD_DIR)/packages/rpm/fuel-docker-images.done
$(ACTION.TOUCH)
packages-late: $(BUILD_DIR)/packages/build-late.done
.PHONY: sources
sources: $(packages_list:%=$(BUILD_DIR)/packages/source_%.done)

View File

@@ -102,29 +102,6 @@ $(BUILD_DIR)/packages/rpm/repo.done:
-o $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL) $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)
$(ACTION.TOUCH)
$(BUILD_DIR)/packages/rpm/fuel-docker-images.done: SANDBOX:=$(BUILD_DIR)/packages/rpm/SANDBOX/fuel-docker-images
$(BUILD_DIR)/packages/rpm/fuel-docker-images.done: SPECFILE:=$(SOURCE_DIR)/packages/rpm/specs/fuel-docker-images.spec
$(BUILD_DIR)/packages/rpm/fuel-docker-images.done: export SANDBOX_DOWN:=$(SANDBOX_DOWN)
$(BUILD_DIR)/packages/rpm/fuel-docker-images.done: \
$(BUILD_DIR)/repos/repos.done \
$(BUILD_DIR)/packages/rpm/buildd.tar.gz \
$(BUILD_DIR)/docker/build.done
python $(SOURCE_DIR)/packages/rpm/genpkgnames.py $(SPECFILE) | xargs -I{} sudo find $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)/Packages -regex '.*/{}-[^-]+-[^-]+' -delete
mkdir -p $(BUILD_DIR)/packages/rpm/RPMS/x86_64
mkdir -p $(SANDBOX) && \
sudo tar xzf $(BUILD_DIR)/packages/rpm/buildd.tar.gz -C $(SANDBOX) && \
mkdir -p $(SANDBOX)/tmp/SOURCES && \
sudo cp -r $(BUILD_DIR)/docker/$(DOCKER_ART_NAME) $(SANDBOX)/tmp/SOURCES && \
(cd $(BUILD_DIR)/docker && sudo tar czf $(SANDBOX)/tmp/SOURCES/fuel-images-sources.tar.gz sources utils) && \
sudo cp $(SPECFILE) $(SANDBOX)/tmp && \
sudo chroot $(SANDBOX) rpmbuild --nodeps --define "_topdir /tmp" -ba /tmp/fuel-docker-images.spec
cp $(SANDBOX)/tmp/RPMS/*/fuel-docker-images-*.rpm $(BUILD_DIR)/packages/rpm/RPMS/x86_64
find $(BUILD_DIR)/packages/rpm/RPMS -name '*.rpm' | xargs cp -u --target-directory=$(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)/Packages
createrepo -g $(LOCAL_MIRROR_MOS_CENTOS)/comps.xml \
-o $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL) $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)
$(ACTION.TOUCH)
$(BUILD_DIR)/packages/rpm/build.done:
ifeq (1,$(strip $(BUILD_PACKAGES)))
$(BUILD_DIR)/packages/rpm/build.done: $(BUILD_DIR)/packages/rpm/repo.done

View File

@@ -1,43 +0,0 @@
%define name fuel-docker-images
%{!?version: %define version 9.0.0}
%{!?release: %define release 1}
Name: %{name}
Summary: Fuel Docker images
Version: %{version}
Release: %{release}
License: Apache 2.0
BuildRoot: %{_tmppath}/%{name}-%{version}
Source0: fuel-images.tar.lrz
Source1: fuel-images-sources.tar.gz
URL: http://mirantis.com
Requires: docker-io
Requires: lrzip
%description
Images for deploying Fuel for OpenStack Docker containers
%prep
rm -rf %{name}-%{version}
mkdir %{name}-%{version}
cp %{SOURCE0} %{name}-%{version}
tar xzvf %{SOURCE1} -C %{name}-%{version}
%install
cd %{name}-%{version}
mkdir -p %{buildroot}/var/www/nailgun/docker/images
mkdir -p %{buildroot}/var/www/nailgun/docker/sources
mkdir -p %{buildroot}/var/www/nailgun/docker/utils
install -m 644 %{SOURCE0} %{buildroot}/var/www/nailgun/docker/images/fuel-images.tar.lrz
cp -R sources %{buildroot}/var/www/nailgun/docker/
%clean
rm -rf %{buildroot}
%post
rm -f /var/www/nailgun/docker/images/fuel-images.tar
lrzip -d -o /var/www/nailgun/docker/images/fuel-images.tar /var/www/nailgun/docker/images/fuel-images.tar.lrz
%files
%defattr(-,root,root)
/var/www/nailgun/docker/images/fuel-images.tar.lrz
/var/www/nailgun/docker/sources/*

View File

@@ -17,22 +17,11 @@
# This script will install all the required packages necessary for
# building a Fuel ISO.
# Install docker repository
# Check that HTTPS transport is available to APT
if [ ! -e /usr/lib/apt/methods/https ]; then
sudo apt-get update
sudo apt-get install -y apt-transport-https
fi
# Add the repository to APT sources
echo deb http://mirror.yandex.ru/mirrors/docker/ docker main | sudo tee /etc/apt/sources.list.d/docker.list
# Import the repository key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
# Install docker
sudo apt-get update
sudo apt-get -y install lxc-docker-1.6.2
# add user to docker group
sudo usermod -a -G docker "$(whoami)"
# Install software
sudo apt-get update

View File

@@ -2,8 +2,6 @@ fencing-agent
fuel
fuel-agent
fuel-bootstrap-cli
fuel-dockerctl
fuel-docker-images
fuel-ha-utils
fuel-library
fuelmenu