summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorCare Computers2015-06-08 23:46:30 +0200
committerCare Computers2015-06-08 23:46:30 +0200
commit30f1bb92756729cae17cfdcbc195813fa6c6e7fc (patch)
tree96b3c8de09d7d03373a3d35da0a76f1292651b3d
downloadaur-archipel-agent-git.tar.gz
Initial import
-rw-r--r--.SRCINFO50
-rw-r--r--PKGBUILD99
-rw-r--r--install48
3 files changed, 197 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..4f6c2bf3640f
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,50 @@
+pkgbase = archipel-agent-git
+ pkgdesc = A solution to manage and supervise virtual machines. (Agent)
+ pkgver = beta6.r389.gc7f7fa6
+ pkgrel = 1
+ url = http://archipelproject.org/
+ install = install
+ arch = any
+ license = AGPL
+ makedepends = python2-setuptools>=3.4
+ makedepends = git
+ depends = python2
+ depends = python2-apscheduler
+ depends = python2-sqlalchemy
+ depends = python2-numpy
+ depends = python2-magic
+ depends = python2-ctypes
+ depends = python-imaging
+ depends = dnsmasq
+ depends = libvirt
+ depends = libvirt-python
+ depends = qemu
+ optdepends = ejabberd: An XMPP Server used by archipel for communication with VMs
+ provides = archipel-agent
+ conflicts = archipel-agent
+ options = !strip
+ options = !emptydirs
+ backup = etc/archipel/archipel.conf
+ backup = etc/archipel/vnc.pem
+ backup = etc/archipel/modules.d/action-scheduler.conf
+ backup = etc/archipel/modules.d/centraldb.conf
+ backup = etc/archipel/modules.d/hypervisor-geolocalization.conf
+ backup = etc/archipel/modules.d/hypervisor-health.conf
+ backup = etc/archipel/modules.d/hypervisor-network.conf
+ backup = etc/archipel/modules.d/iphone-notification.conf
+ backup = etc/archipel/modules.d/virtualmachine-oomkiller.conf
+ backup = etc/archipel/modules.d/virtualmachine-snapshoting.conf
+ backup = etc/archipel/modules.d/virtualmachine-storage.conf
+ backup = etc/archipel/modules.d/virtualmachine-vnc.conf
+ backup = etc/archipel/modules.d/vmcasting.conf
+ backup = etc/archipel/modules.d/vmparking.conf
+ backup = etc/archipel/modules.d/xmppserver.conf
+ source = git://github.com/ArchipelProject/Archipel.git
+ source = git://github.com/ArchipelProject/xmpppy.git
+ source = git://github.com/ArchipelProject/Node.git
+ sha512sums = SKIP
+ sha512sums = SKIP
+ sha512sums = SKIP
+
+pkgname = archipel-agent-git
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..0db25be81211
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,99 @@
+# Maintainer: Ruthger Gubbels <aur@ruthger.nl>
+# Contributor: Damian Nowak <spam@nowaker.net>
+# Contributor: Sebastien Leduc <sebastien@sleduc.fr>
+# Contributor: Shanto <shanto@hotmail.com>
+
+pkgname='archipel-agent-git'
+pkgver=beta6.r389.gc7f7fa6
+pkgrel=1
+pkgdesc='A solution to manage and supervise virtual machines. (Agent)'
+arch=('any')
+url='http://archipelproject.org/'
+license=('AGPL')
+depends=(
+ 'python2' 'python2-apscheduler' 'python2-sqlalchemy'
+ 'python2-numpy' 'python2-magic' 'python2-ctypes'
+ 'python-imaging' 'dnsmasq'
+ 'libvirt' 'libvirt-python' 'qemu'
+)
+makedepends=('python2-setuptools>=3.4' 'git')
+optdepends=('ejabberd: An XMPP Server used by archipel for communication with VMs')
+provides=('archipel-agent')
+conflicts=('archipel-agent')
+backup=('etc/archipel/archipel.conf' 'etc/archipel/vnc.pem'
+ 'etc/archipel/modules.d/action-scheduler.conf' 'etc/archipel/modules.d/centraldb.conf'
+ 'etc/archipel/modules.d/hypervisor-geolocalization.conf' 'etc/archipel/modules.d/hypervisor-health.conf'
+ 'etc/archipel/modules.d/hypervisor-network.conf' 'etc/archipel/modules.d/iphone-notification.conf'
+ 'etc/archipel/modules.d/virtualmachine-oomkiller.conf' 'etc/archipel/modules.d/virtualmachine-snapshoting.conf'
+ 'etc/archipel/modules.d/virtualmachine-storage.conf' 'etc/archipel/modules.d/virtualmachine-vnc.conf'
+ 'etc/archipel/modules.d/vmcasting.conf' 'etc/archipel/modules.d/vmparking.conf'
+ 'etc/archipel/modules.d/xmppserver.conf'
+)
+options=(!strip !emptydirs)
+install='install'
+source=('git://github.com/ArchipelProject/Archipel.git'
+ 'git://github.com/ArchipelProject/xmpppy.git'
+ 'git://github.com/ArchipelProject/Node.git'
+)
+sha512sums=('SKIP' 'SKIP' 'SKIP')
+
+pkgver() {
+ cd Archipel
+ git describe --tags | sed 's/^@//; s/-/.r/; s/-/./'
+}
+
+prepare() {
+ cd "$srcdir"/Archipel
+ git submodule init
+ git config submodule.ArchipelAgent/archipel-core/archipelcore/xmpp.url "$srcdir"/xmpppy
+# git config submodule.ArchipelAgent/ANSOS.url "$srcdir"/Node
+ git submodule update "$srcdir"/Archipel/ArchipelAgent/archipel-core/archipelcore/xmpp
+# git submodule update "$srcdir"/Archipel/ArchipelAgent/ANSOS
+}
+
+build() {
+ # Remove central agent python packages
+ rm "$srcdir"/Archipel/ArchipelAgent/archipel-central-agent* -r 2>/dev/null
+
+ _list=$(find "$srcdir"/Archipel/ArchipelAgent -type d -name "archipel-*")
+ for _dir in $_list; do
+ msg "Building $_dir"
+ pushd $_dir 1>/dev/null
+ if [ -f 'setup.py' ]; then
+ python2 setup.py install --root="$srcdir/$pkgname" --optimize=1 1>/dev/null
+ fi
+ popd 1>/dev/null
+ done;
+
+ # Replace python with python2
+ sed -i 's/\/usr\/bin\/python /\/usr\/bin\/python2 /' "$srcdir"/"$pkgname"/usr/bin/*
+
+ # Copy modules.d conf files
+ _list=$(find "$srcdir"/"$pkgname"/usr/lib/ -type d -name '*.egg-info')
+ for _pack in $_list; do
+ _conf=$(cat "$_pack"/SOURCES.txt | sed -nr '/plugin.conf/p')
+ if [ -n "$_conf" ]; then
+ _name=$(cat "$_pack"/PKG-INFO | sed -n '/Name:/p' | sed -n -e 's/^.*\(agent-\)\(.*\)$/\2/p')
+ install -Dm644 "$_pack"/../"$_conf" "$srcdir"/"$pkgname"/usr/install/etc/archipel/modules.d/"$_name".conf
+ fi
+ done;
+
+ # Remove old init.d
+ rm "$srcdir"/"$pkgname"/usr/install/etc/init.d -r
+}
+
+package() {
+ # Copy Archipel packages and executables
+ cp "$srcdir"/"$pkgname"/usr "$pkgdir"/usr -r
+
+ # Install systemd service
+ install -Dm644 "$srcdir"/Archipel/ArchipelAgent/archipel-agent/install/usr/lib/systemd/system/archipel-agent.service "$pkgdir"/usr/lib/systemd/system/archipel-agent.service
+
+ # Create the target configuration and data directories
+ install -dm0755 "$pkgdir"/etc/archipel "$pkgdir"/var/lib/archipel
+
+ # Copy the configuration and data files
+ cp "$srcdir"/"$pkgname"/usr/install/etc/archipel/* "$pkgdir"/etc/archipel -r
+
+ cp "$srcdir"/"$pkgname"/usr/install/var/lib/archipel/* "$pkgdir"/var/lib/archipel -r
+}
diff --git a/install b/install
new file mode 100644
index 000000000000..1a452da36bc7
--- /dev/null
+++ b/install
@@ -0,0 +1,48 @@
+pre_upgrade()
+{
+ systemctl stop archipel-agent && (
+ touch '/tmp/archipel-was-started'
+ echo 'Archipel agent has been stopped.'
+ )
+}
+
+post_install()
+{
+ uuid=$(cat /proc/sys/kernel/random/uuid)
+ hostname=$(cat /etc/hostname)
+ password=$(date +%s | sha256sum | base64 | head -c 8)
+
+ `sed -i "s/PARAM_UUID/$uuid/" /etc/archipel/archipel.conf`
+ `sed -i "s/PARAM_HYPERVISOR_NAME/$hostname/" /etc/archipel/archipel.conf`
+ `sed -i "s/PARAM_HYPERVISOR_PASSWORD/$password/" /etc/archipel/archipel.conf`
+ `sed -i "s/PARAM_XMPP_SERVER/localhost/" /etc/archipel/archipel.conf`
+ `sed -i "s/PARAM_PREFIX//" /etc/archipel/archipel.conf`
+
+ cat <<- EOF
+ You need to configure Archipel agent: /etc/archipel/archipel.conf
+ https://github.com/ArchipelProject/Archipel/wiki/Installation%3A-Agent
+
+ ==> Start Archipel using systemd:
+ # systemctl start archipel-agent
+ ==> Auto-start Archipel on boot:
+ # systemctl enable archipel-agent
+EOF
+}
+
+post_upgrade()
+{
+ systemctl --system daemon-reload
+ if [ -f '/tmp/archipel-was-started' ]; then
+ rm '/tmp/archipel-was-started'
+ systemctl start archipel-agent
+ echo 'Archipel agent has been started.'
+ fi
+}
+
+post_remove()
+{
+ cat <<- EOF
+ ==> You may safely delete Archipel Agent config and files:
+ # rm -rf /etc/archipel /var/lib/archipel
+EOF
+}