Date: Wed, 29 Jan 2014 11:46:59 +0000 (UTC) From: Martin Matuska <mm@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r341716 - in head/net: . foreman-proxy foreman-proxy/files Message-ID: <201401291146.s0TBkxSr020502@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mm Date: Wed Jan 29 11:46:59 2014 New Revision: 341716 URL: http://svnweb.freebsd.org/changeset/ports/341716 QAT: https://qat.redports.org/buildarchive/r341716/ Log: The Foreman Smart Proxy is a project which provides a restful API to various sub-systems. Its goal is to provide API for a higher level orchestration tools (such as Foreman). The Smart proxy provides an easy way to add or extended existing subsystems and API's. Currently supported are: DHCP - ISC DHCP and MS DHCP Servers DNS - Bind and MS DNS Servers TFTP - any UNIX based tftp server Puppet - Any Puppet server from 0.24.x Puppet CA - Manage certificate signing, cleaning and autosign on a Puppet CA server BMC - BMC management etc WWW: http://theforeman.org Added: head/net/foreman-proxy/ head/net/foreman-proxy/Makefile (contents, props changed) head/net/foreman-proxy/distinfo (contents, props changed) head/net/foreman-proxy/files/ head/net/foreman-proxy/files/foreman-proxy.in (contents, props changed) head/net/foreman-proxy/files/patch-config-settings.yml.example (contents, props changed) head/net/foreman-proxy/files/patch-lib-proxy-tftp.rb (contents, props changed) head/net/foreman-proxy/files/patch-lib-sinatra-patch.rb (contents, props changed) head/net/foreman-proxy/files/pkg-install.in (contents, props changed) head/net/foreman-proxy/pkg-descr (contents, props changed) head/net/foreman-proxy/pkg-plist (contents, props changed) Modified: head/net/Makefile Modified: head/net/Makefile ============================================================================== --- head/net/Makefile Wed Jan 29 11:34:02 2014 (r341715) +++ head/net/Makefile Wed Jan 29 11:46:59 2014 (r341716) @@ -134,6 +134,7 @@ SUBDIR += findmtu SUBDIR += flowgrep SUBDIR += fonulator + SUBDIR += foreman-proxy SUBDIR += forg SUBDIR += fpc-ldap SUBDIR += fpc-pcap Added: head/net/foreman-proxy/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/foreman-proxy/Makefile Wed Jan 29 11:46:59 2014 (r341716) @@ -0,0 +1,91 @@ +# Created by: Martin Matuska <mm@FreeBSD.org> +# $FreeBSD$ + +PORTNAME= foreman-proxy +DISTVERSION= 1.4.0-RC2 +CATEGORIES= net +MASTER_SITES= GH + +MAINTAINER= mm@FreeBSD.org +COMMENT= Foreman Smart Proxy + +LICENSE= GPLv3 + +RUN_DEPENDS= rubygem-sinatra>=1.4.3:${PORTSDIR}/www/rubygem-sinatra \ + rubygem-json>=1.8.1:${PORTSDIR}/devel/rubygem-json + +OPTIONS_DEFINE= BMC PUPPET +BMC_DESC= Depend on rubyipmi for BMC support +PUPPET_DESC= Depend on Puppet + +USE_GITHUB= yes +GH_ACCOUNT= theforeman +GH_PROJECT= smart-proxy +GH_COMMIT= 255c9bf +USE_RUBY= yes +USE_RAKE= yes +USE_RC_SUBR= foreman-proxy +NO_BUILD= yes +PKGINSTALL= ${WRKDIR}/pkg-install + +FOREMAN_PROXY_USER?= foreman_proxy +FOREMAN_PROXY_GROUP?= foreman_proxy +FOREMAN_PROXY_LOGDIR?= /var/log/foreman-proxy +FOREMAN_PROXY_RUNDIR?= /var/run/foreman-proxy + +USERS= ${FOREMAN_PROXY_USER} +GROUPS= ${FOREMAN_PROXY_GROUP} + +SUB_FILES+= pkg-install +SUB_LIST+= RUBY="${RUBY}" \ + FOREMAN_PROXY_USER="${FOREMAN_PROXY_USER}" \ + FOREMAN_PROXY_GROUP="${FOREMAN_PROXY_GROUP}" \ + FOREMAN_PROXY_RUNDIR="${FOREMAN_PROXY_RUNDIR}" \ + FOREMAN_PROXY_LOGDIR="${FOREMAN_PROXY_LOGDIR}" + +PLIST_SUB+= ${SUB_LIST} \ + MKDIR="${MKDIR}" + +.include <bsd.port.options.mk> + +.if ${PORT_OPTIONS:MBMC} +RUN_DEPENDS+= rubygem-rubyipmi>=0.7:${PORTSDIR}/sysutils/rubygem-rubyipmi +.endif + +.if ${PORT_OPTIONS:MPUPPET} +RUN_DEPENDS+= puppet:${PORTSDIR}/sysutils/puppet +.endif + +.include <bsd.port.pre.mk> + +post-patch: + @${REINPLACE_CMD} \ + -e "s|/usr/bin/env ruby|${RUBY}|g" \ + -e "s|#{File.dirname(__FILE__)}/..|${DATADIR}|g" \ + ${WRKSRC}/bin/smart-proxy + @${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" \ + -e "s|%%LOCALBASE%%|${LOCALBASE}|g" \ + ${WRKSRC}/config/settings.yml.example + +do-install: + @${MKDIR} ${STAGEDIR}${PREFIX}/etc/foreman-proxy + @${MKDIR} ${STAGEDIR}${DATADIR} + @${LN} -s ${PREFIX}/etc/foreman-proxy ${STAGEDIR}${DATADIR}/config + @${INSTALL_SCRIPT} ${WRKSRC}/bin/smart-proxy \ + ${STAGEDIR}${PREFIX}/sbin/smart-proxy +.for file in Rakefile config.ru lib public views + @${CP} -r ${WRKSRC}/${file} ${STAGEDIR}${DATADIR} +.endfor + @${INSTALL_DATA} ${WRKSRC}/config/settings.yml.example \ + ${STAGEDIR}${PREFIX}/etc/foreman-proxy/settings.yml.sample +.if !exists(${STAGEDIR}${PREFIX}/etc/foreman-proxy/settings.yml) + @${INSTALL_DATA} ${WRKSRC}/config/settings.yml.example \ + ${STAGEDIR}${PREFIX}/etc/foreman-proxy/settings.yml +.endif + +post-install: + @${MKDIR} -m 0700 ${STAGEDIR}${FOREMAN_PROXY_LOGDIR} \ + ${STAGEDIR}${FOREMAN_PROXY_RUNDIR} + @${SH} ${PKGINSTALL} STAGEDIR=${STAGEDIR} + +.include <bsd.port.post.mk> Added: head/net/foreman-proxy/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/foreman-proxy/distinfo Wed Jan 29 11:46:59 2014 (r341716) @@ -0,0 +1,2 @@ +SHA256 (foreman-proxy-1.4.0-RC2.tar.gz) = bbe0f3be114b8fb406e79fdd845690ad69d83915ccd1513fbc3deb71b894343a +SIZE (foreman-proxy-1.4.0-RC2.tar.gz) = 84992 Added: head/net/foreman-proxy/files/foreman-proxy.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/foreman-proxy/files/foreman-proxy.in Wed Jan 29 11:46:59 2014 (r341716) @@ -0,0 +1,28 @@ +#!/bin/sh + +# $FreeBSD$ +# +# PROVIDE: foreman-proxy +# BEFORE: LOGIN +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf to enable foreman-proxy: +# foreman_proxy_enable (bool): Set to "NO" by default +# Set it to "YES" to enable nsca. +. /etc/rc.subr + +name="foreman_proxy" +rcvar="foreman_proxy_enable" + +command="%%PREFIX%%/sbin/smart-proxy" +command_interpreter="%%RUBY%%" +pidfile="%%FOREMAN_PROXY_RUNDIR%%/foreman-proxy.pid" + +foreman_proxy_enable=${foreman_proxy_enable:-"NO"} +foreman_proxy_user=${foreman_proxy_user-"%%FOREMAN_PROXY_USER%%"} + +load_rc_config "${name}" + +required_files="%%PREFIX%%/etc/foreman-proxy/settings.yml" + +run_rc_command "$1" Added: head/net/foreman-proxy/files/patch-config-settings.yml.example ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/foreman-proxy/files/patch-config-settings.yml.example Wed Jan 29 11:46:59 2014 (r341716) @@ -0,0 +1,90 @@ +--- config/settings.yml.example.orig 2014-01-28 19:55:58.769179974 +0100 ++++ config/settings.yml.example 2014-01-28 20:06:51.840135157 +0100 +@@ -23,7 +23,7 @@ + + # Enable TFTP management + :tftp: false +-:tftproot: /var/lib/tftpboot ++:tftproot: /tftpboot + # Defines the TFTP Servername to use, overrides the name in the subnet declaration + #:tftp_servername: tftp.domain.com + +@@ -35,14 +35,14 @@ + # nsupdate_gss (for GSS-TSIG support) + # virsh (simple implementation for libvirt) + :dns_provider: nsupdate +-#:dns_key: /etc/rndc.key ++#:dns_key: /usr/local/etc/namedb/rndc.key + # use this setting if you are managing a dns server which is not localhost though this proxy + #:dns_server: dns.domain.com + # use this setting if you want to override default TTL setting (86400) + #:dns_ttl: 86400 + # use dns_tsig_* for GSS-TSIG updates using Kerberos. Required for Windows MS DNS with + # Secure Dynamic Updates, or BIND as used in FreeIPA. Set dns_provider to nsupdate_gss. +-#:dns_tsig_keytab: /usr/share/foreman-proxy/dns.keytab ++#:dns_tsig_keytab: /usr/local/share/foreman-proxy/dns.keytab + #:dns_tsig_principal: DNS/host.example.com@EXAMPLE.COM + + # Enable DHCP management +@@ -55,15 +55,8 @@ + # dhcp_subnets is a Native MS implementation setting. It restricts the subnets queried to a + # subset, so as to reduce the query time. + #:dhcp_subnets: [192.168.205.0/255.255.255.128, 192.168.205.128/255.255.255.128] +-# Settings for Ubuntu ISC +-#:dhcp_config: /etc/dhcp3/dhcpd.conf +-#:dhcp_leases: /var/lib/dhcp3/dhcpd.leases +-# Settings for Redhat ISC +-# Redhat 5 +-#:dhcp_config: /etc/dhcpd.conf +-# Redhat 6 +-#:dhcp_config: /etc/dhcp/dhcpd.conf +-#:dhcp_leases: /var/lib/dhcpd/dhcpd.leases ++#:dhcp_config: %%LOCALBASE%%/etc/dhcpd.conf ++#:dhcp_leases: /var/db/dhcpd.leases + #:dhcp_key_name: secret_key_name + #:dhcp_key_secret: secret_key + +@@ -72,8 +65,8 @@ + + # enable PuppetCA management + :puppetca: false +-#:ssldir: /var/lib/puppet/ssl +-#:puppetdir: /etc/puppet ++#:ssldir: /var/puppet/ssl ++#:puppetdir: %%LOCALBASE%%/etc/puppet + + # enable Puppet management + :puppet: false +@@ -87,19 +80,19 @@ + + # customrun command details + # Set :customrun_cmd to the full path of the script you want to run, instead of /bin/false +-:customrun_cmd: /bin/false ++:customrun_cmd: /usr/bin/false + # Set :customrun_args to any args you want to pass to your custom script. The hostname of the + # system to run against will be appended after the custom commands. + :customrun_args: -ay -f -s + +-:puppet_conf: /etc/puppet/puppet.conf ++:puppet_conf: %%LOCALBASE%%/etc/puppet/puppet.conf + # whether to use sudo before the ssh command + :puppetssh_sudo: false + # the command which will be sent to the host +-:puppetssh_command: /usr/bin/puppet agent --onetime --no-usecacheonfailure ++:puppetssh_command: %%LOCALBASE%%/bin/puppet agent --onetime --no-usecacheonfailure + # With which user should the proxy connect + #:puppetssh_user: root +-#:puppetssh_keyfile: /etc/foreman-proxy/id_rsa ++#:puppetssh_keyfile: %%PREFIX%%/etc/foreman-proxy/id_rsa + + # Which user to invoke sudo as to run puppet commands + #:puppet_user: root +@@ -111,7 +104,7 @@ + # smart-proxy client node needs to have some admin right on chef-server + # in order to retrive all nodes public keys + # :chef_smartproxy_clientname: 'host.example.net' +-# :chef_smartproxy_privatekey: '/etc/chef/client.pem' ++# :chef_smartproxy_privatekey: '%%LOCALBASE%%/etc/chef/client.pem' + + # enable BMC management (Bare metal power and bios controls) + # Available providers: Added: head/net/foreman-proxy/files/patch-lib-proxy-tftp.rb ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/foreman-proxy/files/patch-lib-proxy-tftp.rb Wed Jan 29 11:46:59 2014 (r341716) @@ -0,0 +1,11 @@ +--- lib/proxy/tftp.rb.orig 2014-01-29 00:26:35.629061321 +0100 ++++ lib/proxy/tftp.rb 2014-01-29 00:28:05.669054835 +0100 +@@ -104,7 +104,7 @@ + # as the dst might contain another sub directory + FileUtils.mkdir_p destination.parent + +- cmd = "wget --timeout=10 --tries=3 --no-check-certificate -nv -c #{src} -O \"#{destination}\"" ++ cmd = "/usr/bin/fetch --timeout=10 -a --no-verify-hostname --no-verify-peer -a -m -o \"#{destination}\" #{src}" + Proxy::Util::CommandTask.new(cmd) + end + end Added: head/net/foreman-proxy/files/patch-lib-sinatra-patch.rb ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/foreman-proxy/files/patch-lib-sinatra-patch.rb Wed Jan 29 11:46:59 2014 (r341716) @@ -0,0 +1,11 @@ +--- lib/sinatra-patch.rb.orig 2014-01-29 12:16:04.574127338 +0100 ++++ lib/sinatra-patch.rb 2014-01-29 12:17:34.113121100 +0100 +@@ -17,7 +17,7 @@ + + puts "Starting Foreman Proxy on #{port} using #{handler_name}" unless handler_name =~/cgi/i + +- FileUtils.mkdir_p(File.join(APP_ROOT, 'tmp/pids')) ++ # FileUtils.mkdir_p(File.join(APP_ROOT, 'tmp/pids')) + + # Create the PID's parent directory if it doesn't exist yet. + if SETTINGS.daemon Added: head/net/foreman-proxy/files/pkg-install.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/foreman-proxy/files/pkg-install.in Wed Jan 29 11:46:59 2014 (r341716) @@ -0,0 +1,19 @@ +#!/bin/sh +# $FreeBSD$ + +if [ "$2" != "POST-INSTALL" ]; then + exit 0 +fi + +USER=%%FOREMAN_PROXY_USER%% +GROUP=%%FOREMAN_PROXY_GROUP%% +LOGDIR=%%FOREMAN_PROXY_LOGDIR%% +RUNDIR=%%FOREMAN_PROXY_RUNDIR%% + +echo "===> Changing owner and modes for \"${LOGDIR}\"." +chown -R ${USER}:${GROUP} ${STAGEDIR}${LOGDIR} +chmod -R go= ${STAGEDIR}${LOGDIR} + +echo "===> Changing owner and modes for \"${RUNDIR}\"." +chown -R ${USER}:${GROUP} ${STAGEDIR}${RUNDIR} +chmod -R go= ${STAGEDIR}${RUNDIR} Added: head/net/foreman-proxy/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/foreman-proxy/pkg-descr Wed Jan 29 11:46:59 2014 (r341716) @@ -0,0 +1,17 @@ +The Foreman Smart Proxy is a project which provides a restful API to various +sub-systems. + +Its goal is to provide API for a higher level orchestration tools (such as +Foreman). The Smart proxy provides an easy way to add or extended existing +subsystems and API's. + +Currently supported are: +DHCP - ISC DHCP and MS DHCP Servers +DNS - Bind and MS DNS Servers +TFTP - any UNIX based tftp server +Puppet - Any Puppet server from 0.24.x +Puppet CA - Manage certificate signing, cleaning and autosign on a Puppet CA + server +BMC - BMC management etc + +WWW: http://theforeman.org Added: head/net/foreman-proxy/pkg-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/foreman-proxy/pkg-plist Wed Jan 29 11:46:59 2014 (r341716) @@ -0,0 +1,90 @@ +sbin/smart-proxy +@unexec if cmp -s %D/etc/foreman-proxy/settings.yml %D/etc/foreman-proxy/settings.yml.sample; then rm -f %D/etc/foreman-proxy/settings.yml; fi +etc/foreman-proxy/settings.yml.sample +@exec [ -f %B/settings.yml ] || cp %B/%f %B/settings.yml +%%DATADIR%%/Rakefile +%%DATADIR%%/config.ru +%%DATADIR%%/config +%%DATADIR%%/lib/bmc_api.rb +%%DATADIR%%/lib/checks.rb +%%DATADIR%%/lib/chefproxy_api.rb +%%DATADIR%%/lib/daemon.rb +%%DATADIR%%/lib/dhcp_api.rb +%%DATADIR%%/lib/dns_api.rb +%%DATADIR%%/lib/facts_api.rb +%%DATADIR%%/lib/features_api.rb +%%DATADIR%%/lib/helpers.rb +%%DATADIR%%/lib/proxy.rb +%%DATADIR%%/lib/proxy/authentication.rb +%%DATADIR%%/lib/proxy/bmc.rb +%%DATADIR%%/lib/proxy/bmc/base.rb +%%DATADIR%%/lib/proxy/bmc/ipmi.rb +%%DATADIR%%/lib/proxy/bmc/shell.rb +%%DATADIR%%/lib/proxy/chefproxy.rb +%%DATADIR%%/lib/proxy/dhcp.rb +%%DATADIR%%/lib/proxy/dhcp/monkey_patch_subnet.rb +%%DATADIR%%/lib/proxy/dhcp/monkey_patches.rb +%%DATADIR%%/lib/proxy/dhcp/record.rb +%%DATADIR%%/lib/proxy/dhcp/record/lease.rb +%%DATADIR%%/lib/proxy/dhcp/record/reservation.rb +%%DATADIR%%/lib/proxy/dhcp/server.rb +%%DATADIR%%/lib/proxy/dhcp/server/isc.rb +%%DATADIR%%/lib/proxy/dhcp/server/ms.rb +%%DATADIR%%/lib/proxy/dhcp/server/native_ms.rb +%%DATADIR%%/lib/proxy/dhcp/server/virsh.rb +%%DATADIR%%/lib/proxy/dhcp/subnet.rb +%%DATADIR%%/lib/proxy/dns.rb +%%DATADIR%%/lib/proxy/dns/default_dns_settings.rb +%%DATADIR%%/lib/proxy/dns/dnscmd.rb +%%DATADIR%%/lib/proxy/dns/nsupdate.rb +%%DATADIR%%/lib/proxy/dns/nsupdate_gss.rb +%%DATADIR%%/lib/proxy/dns/virsh.rb +%%DATADIR%%/lib/proxy/error.rb +%%DATADIR%%/lib/proxy/log.rb +%%DATADIR%%/lib/proxy/puppet.rb +%%DATADIR%%/lib/proxy/puppet/class_scanner.rb +%%DATADIR%%/lib/proxy/puppet/class_scanner_eparser.rb +%%DATADIR%%/lib/proxy/puppet/customrun.rb +%%DATADIR%%/lib/proxy/puppet/default_puppet_settings.rb +%%DATADIR%%/lib/proxy/puppet/environment.rb +%%DATADIR%%/lib/proxy/puppet/initializer.rb +%%DATADIR%%/lib/proxy/puppet/mcollective.rb +%%DATADIR%%/lib/proxy/puppet/puppet_class.rb +%%DATADIR%%/lib/proxy/puppet/puppet_ssh.rb +%%DATADIR%%/lib/proxy/puppet/puppetrun.rb +%%DATADIR%%/lib/proxy/puppet/salt.rb +%%DATADIR%%/lib/proxy/puppetca.rb +%%DATADIR%%/lib/proxy/settings.rb +%%DATADIR%%/lib/proxy/tftp.rb +%%DATADIR%%/lib/proxy/util.rb +%%DATADIR%%/lib/proxy/validations.rb +%%DATADIR%%/lib/proxy/virsh.rb +%%DATADIR%%/lib/puppet_api.rb +%%DATADIR%%/lib/puppetca_api.rb +%%DATADIR%%/lib/sinatra-patch.rb +%%DATADIR%%/lib/smart_proxy.rb +%%DATADIR%%/lib/tftp_api.rb +%%DATADIR%%/public/css/styles.css +%%DATADIR%%/views/dhcp/index.erb +%%DATADIR%%/views/dhcp/show.erb +%%DATADIR%%/views/features/index.erb +%%DATADIR%%/views/layout.erb +@dirrm %%DATADIR%%/views/features +@dirrm %%DATADIR%%/views/dhcp +@dirrm %%DATADIR%%/views +@dirrm %%DATADIR%%/public/css +@dirrm %%DATADIR%%/public +@dirrm %%DATADIR%%/lib/proxy/bmc +@dirrm %%DATADIR%%/lib/proxy/dhcp/record +@dirrm %%DATADIR%%/lib/proxy/dhcp/server +@dirrm %%DATADIR%%/lib/proxy/dhcp +@dirrm %%DATADIR%%/lib/proxy/dns +@dirrm %%DATADIR%%/lib/proxy/puppet +@dirrm %%DATADIR%%/lib/proxy +@dirrm %%DATADIR%%/lib +@dirrmtry %%DATADIR%% +@dirrmtry etc/foreman-proxy +@cwd / +@exec %%MKDIR%% -m 0700 %%FOREMAN_PROXY_LOGDIR%% %%FOREMAN_PROXY_RUNDIR%% +@unexec rmdir %%FOREMAN_PROXY_LOGDIR%% >/dev/null 2>&1 || : +@unexec rmdir %%FOREMAN_PROXY_RUNDIR%% >/dev/null 2>&1 || :
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401291146.s0TBkxSr020502>