mirror of
https://github.com/xcat2/confluent.git
synced 2024-11-22 01:22:00 +00:00
First pass at packaging imgutil
This commit is contained in:
parent
ac2474f43e
commit
cb4b8ab06f
@ -4,7 +4,7 @@ Release: 1
|
||||
Summary: OS Deployment support for confluent
|
||||
|
||||
License: Apache2
|
||||
URL: http://hpc.lenovo.com/
|
||||
URL: https://hpc.lenovo.com/
|
||||
Source0: confluent_osdeploy.tar.xz
|
||||
BuildArch: noarch
|
||||
Requires: confluent_ipxe mtools tar
|
||||
|
28
imgutil/confluent_imgutil.spec.tmpl
Normal file
28
imgutil/confluent_imgutil.spec.tmpl
Normal file
@ -0,0 +1,28 @@
|
||||
Name: confluent_imgutil
|
||||
Version: #VERSION#
|
||||
Summary: Confluent OS imaging utility
|
||||
License: Apache2
|
||||
URL: https://hpc.lenovo.com/
|
||||
Source: confluent_imgutil.tar.xz
|
||||
BuildArch: noarch
|
||||
BuildRoot: /tmp/
|
||||
|
||||
%description
|
||||
Utility for generating, modifying, and packing confluent deployment
|
||||
images for diskless boot.
|
||||
|
||||
%prep
|
||||
%setup -n imgutil
|
||||
|
||||
%build
|
||||
mkdir -p opt/confluent/lib/imgutil
|
||||
mkdir -p opt/confluent/bin
|
||||
mv imgutil opt/confluent/bin/
|
||||
mv el8 opt/confluent/lib/imgutil/
|
||||
|
||||
%install
|
||||
cp -a opt %{buildroot}/
|
||||
|
||||
%files
|
||||
/opt/confluent/bin/imgutil
|
||||
/opt/confluent/lib/imgutil
|
@ -55,6 +55,14 @@ def create_yumconf(sourcedir):
|
||||
yumconf.write('enabled=1\ngpgcheck=0\n\n')
|
||||
return repodir
|
||||
|
||||
def get_mydir(oscategory):
|
||||
mydir = os.path.dirname(__file__)
|
||||
mycopy = os.path.join(mydir, oscategory)
|
||||
gencopy = os.path.join('/opt/confluent/lib/imgutil', oscategory)
|
||||
if os.path.exists(mycopy):
|
||||
return mycopy
|
||||
return gencopy
|
||||
|
||||
class ElHandler(object):
|
||||
def __init__(self, name, version, arch):
|
||||
self.name = name
|
||||
@ -66,7 +74,7 @@ class ElHandler(object):
|
||||
self.yumargs = []
|
||||
|
||||
def add_pkglists(self, profile='default'):
|
||||
with open(os.path.join(os.path.dirname(__file__), 'el8/profiles/{}/pkglist'.format(profile)), 'r') as pkglist:
|
||||
with open(os.path.join(get_mydir('el8'), 'profiles/{}/pkglist'.format(profile)), 'r') as pkglist:
|
||||
pkgs = pkglist.read()
|
||||
pkgs = pkgs.split()
|
||||
self.yumargs.extend(pkgs)
|
||||
@ -88,8 +96,8 @@ class ElHandler(object):
|
||||
mkdirp(os.path.join(self.targpath, 'usr/lib/dracut/modules.d'))
|
||||
mkdirp(os.path.join(self.targpath, 'etc/dracut.conf.d'))
|
||||
open(os.path.join(self.targpath, 'etc/resolv.conf'),'w').close()
|
||||
mydir = os.path.dirname(__file__)
|
||||
dracutdir = os.path.join(mydir, 'el8/dracut')
|
||||
mydir = get_mydir('el8')
|
||||
dracutdir = os.path.join(mydir, 'dracut')
|
||||
targdir = os.path.join(self.targpath, 'usr/lib/dracut/modules.d/97diskless')
|
||||
shutil.copytree(dracutdir, targdir)
|
||||
with open(os.path.join(self.targpath, 'etc/dracut.conf.d/diskless.conf'), 'w') as dracutconf:
|
||||
@ -360,10 +368,12 @@ def pack_image(opts, args):
|
||||
label = '{0} ({1}'.format(prettyname, 'Diskless Boot')
|
||||
with open(os.path.join(outdir, 'profile.yaml'), 'w') as profile:
|
||||
profile.write('label: {0}\nkernelargs: quiet # confluent_imagemethod=untethered|tethered\n')
|
||||
os.symlink(
|
||||
'/opt/confluent/lib/osdeploy/{}-diskless/initramfs/addons.cpio'.format(
|
||||
oshandler.oscategory),
|
||||
oscat = oshandler.oscategory
|
||||
confdir = '/opt/confluent/lib/osdeploy/{}-diskless'.format(oscat)
|
||||
os.symlink('{}/initramfs/addons.cpio'.format(confdir),
|
||||
os.path.join(outdir, 'boot/initramfs/addons.cpio'))
|
||||
if os.path.exists('{}/profiles/default'.format(confdir)):
|
||||
shutil.copytree('{}/profiles/default', outdir)
|
||||
try:
|
||||
pwd.getpwnam('confluent')
|
||||
subprocess.check_call(['chown', '-R', 'confluent', outdir])
|
||||
|
Loading…
Reference in New Issue
Block a user