From c907bdf04890c354c08d1366cd7a6265421d20f8 Mon Sep 17 00:00:00 2001 From: Albert Hopkins Date: Fri, 11 Dec 2015 04:12:56 +0000 Subject: [PATCH] appliances: new appliance: vabuilder This appliance hosts the Gentoo Virtual Appliance[1] tool. Now you can build the thing that builds the thing that builds the things. Note that you cannot (yet) run this inside of a systemd (or Docker) container (without giving it special privs), but I'm working on that. It should at least be possible to build stage4s with it. [1] https://bitbucket.org/marduk/virtual-appliance --- appliances/vabuilder/Makefile | 19 +++++++ appliances/vabuilder/make.conf | 1 + appliances/vabuilder/nginx.conf.m4 | 80 +++++++++++++++++++++++++++ appliances/vabuilder/package.keywords | 1 + appliances/vabuilder/package.use | 16 ++++++ appliances/vabuilder/world | 5 ++ 6 files changed, 122 insertions(+) create mode 100644 appliances/vabuilder/Makefile create mode 100644 appliances/vabuilder/make.conf create mode 100644 appliances/vabuilder/nginx.conf.m4 create mode 100644 appliances/vabuilder/package.keywords create mode 100644 appliances/vabuilder/package.use create mode 100644 appliances/vabuilder/world diff --git a/appliances/vabuilder/Makefile b/appliances/vabuilder/Makefile new file mode 100644 index 0000000..c0a2424 --- /dev/null +++ b/appliances/vabuilder/Makefile @@ -0,0 +1,19 @@ +VABUILDER_HOME = /var/lib/vabuilder +VABUILDER_REPO = https://bitbucket.org/marduk/virtual-appliance/ +VABUILDER_REV = default + +M4_DEFS += -D VABUILDER_HOME=$(VABUILDER_HOME) -D HOSTNAME=$(HOSTNAME) +M4C = $(M4) $(M4_DEFS) + +preinstall: + +postinstall: nginx.conf.m4 + $(inroot) rm -rf $(VABUILDER_HOME) + $(inroot) hg clone -u $(VABUILDER_REV) $(VABUILDER_REPO) $(VABUILDER_HOME) + $(inroot) ln -nsf $(VABUILDER_HOME) /root/vabuilder + $(M4C) nginx.conf.m4 > $(CHROOT)/etc/nginx/nginx.conf + $(inroot) systemctl enable nginx.service + + +clean: + diff --git a/appliances/vabuilder/make.conf b/appliances/vabuilder/make.conf new file mode 100644 index 0000000..b6c22f7 --- /dev/null +++ b/appliances/vabuilder/make.conf @@ -0,0 +1 @@ +NGINX_MODULES_HTTP="auth_basic fancyindex gzip proxy referer rewrite headers_more uwsgi" diff --git a/appliances/vabuilder/nginx.conf.m4 b/appliances/vabuilder/nginx.conf.m4 new file mode 100644 index 0000000..db64794 --- /dev/null +++ b/appliances/vabuilder/nginx.conf.m4 @@ -0,0 +1,80 @@ +user nginx nginx; +worker_processes 1; + +error_log /var/log/nginx/error_log info; + +events { + worker_connections 1024; + use epoll; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main + '$remote_addr - $remote_user [$time_local] ' + '"$request" $status $bytes_sent ' + '"$http_referer" "$http_user_agent" ' + '"$gzip_ratio"'; + + client_header_timeout 10m; + client_body_timeout 10m; + send_timeout 10m; + + connection_pool_size 256; + client_header_buffer_size 1k; + large_client_header_buffers 4 2k; + request_pool_size 4k; + + gzip on; + gzip_min_length 1100; + gzip_buffers 4 8k; + gzip_types text/plain; + + output_buffers 1 32k; + postpone_output 1460; + + sendfile on; + tcp_nopush on; + tcp_nodelay on; + + keepalive_timeout 75 20; + + ignore_invalid_headers on; + + index index.html; + + server { + listen 0.0.0.0; + server_name HOSTNAME; + + access_log /var/log/nginx/HOSTNAME.access_log main; + error_log /var/log/nginx/HOSTNAME.error_log info; + + root /var/www/localhost/htdocs; + + location /images/ { + alias VABUILDER_HOME/images/; + fancyindex on; + fancyindex_exact_size off; + fancyindex_localtime on; + } + + } + + # SSL example + #server { + # listen 127.0.0.1:443; + # server_name HOSTNAME; + + # ssl on; + # ssl_certificate /etc/ssl/nginx/nginx.pem; + # ssl_certificate_key /etc/ssl/nginx/nginx.key; + + # access_log /var/log/nginx/HOSTNAME.ssl_access_log main; + # error_log /var/log/nginx/HOSTNAME.ssl_error_log info; + + # root /var/www/localhost/htdocs; + #} +} diff --git a/appliances/vabuilder/package.keywords b/appliances/vabuilder/package.keywords new file mode 100644 index 0000000..daa1737 --- /dev/null +++ b/appliances/vabuilder/package.keywords @@ -0,0 +1 @@ +sys-kernel/gentoo-sources ~amd64 ~x86 diff --git a/appliances/vabuilder/package.use b/appliances/vabuilder/package.use new file mode 100644 index 0000000..667e158 --- /dev/null +++ b/appliances/vabuilder/package.use @@ -0,0 +1,16 @@ +app-editors/nano ncurses +dev-lang/python ssl threads xml +dev-libs/libpcre cxx +dev-util/pkgconfig internal-glib +net-misc/openssh ssl +sys-apps/hwids udev +sys-apps/kmod tools +sys-apps/portage ipc +sys-auth/pambase nullok sha512 +sys-devel/gcc cxx nptl +sys-kernel/gentoo-sources symlink + +# appliance-specific +app-emulation/qemu python_targets_python2_7 +dev-vcs/mercurial python_targets_python2_7 +www-servers/nginx http diff --git a/appliances/vabuilder/world b/appliances/vabuilder/world new file mode 100644 index 0000000..e454bd9 --- /dev/null +++ b/appliances/vabuilder/world @@ -0,0 +1,5 @@ +app-emulation/qemu +dev-libs/glib +dev-vcs/mercurial +sys-block/parted +www-servers/nginx