Date: Fri, 13 Jan 2006 14:15:01 -0500 From: "Eric W. Bates" <ericx_lists@vineyard.net> To: mike@lanline.com Cc: freebsd-isp@freebsd.org Subject: Re: management Message-ID: <43C7FC35.9000806@vineyard.net> In-Reply-To: <Pine.BSI.4.05L.10601121738030.19901-100000@mail.lanline.com> References: <Pine.BSI.4.05L.10601121738030.19901-100000@mail.lanline.com>
next in thread | previous in thread | raw e-mail | index | archive | help
mike@lanline.com wrote:
> Hi all,
>
> Sorry, I know I've asked a question similar to this in the past,
> but... I am currently in the process of migrating from BSD/OS to
> FreeBSD. I'm very concerned with the management of my new FreeBSD server
> farm. There doesn't seem to be much documentation in the way of large
> scale FreeBSD management. I posted a question recently about upgrades
> (having one server w/ the source and NFS mounting the source dirs to all
> the other machines and building that way), but I feel like some minor
> details are missing. Like, can I or should I redirect the obj code to a
> directory on the local machine so I don't have to do a make clean as I go
> from server to server (and if so, can I do this through make.conf)? Same
> thing with ports. Also, I know about portupgrade, but is that the best way
> to manage ports? Is there something better? And the port system
> itself... I know it's supposed to provide all this flexibility, but there
> doesn't seem to be any documentation about what variables can be set or
> anything (e.g. can I force the binary to get installed in a certain dir?)
You can tweak individual ports to build with separate rules. If you
simply set a flag in /etc/make.conf, the flag is read by every port (and
the system build for that matter). This can sometimes be a problem if
(for example) you want to build sasl with ldap support and ldap with
sasl support.
If you are consistent about using portupgrade, there is a ruby struct to
do this in /usr/local/etc/pkgtools.conf :
MAKE_ARGS = {
'net/openldap*' => 'WITH_SASL=1',
'www/mod_php4' => 'BATCH=1',
'lang/php4' => 'BATCH=1',
}
If you think there is some reason why you can't or won't always use
portupgrade, there is an undocumented technique I use. The file
/usr/Makefile.inc (which doesn't normally exist) is sourced by the port
build process after the make variable PORTNAME is defined.
/usr/Makefile.inc
# -*- makefile -*-
# $Id: Makefile.inc,v 1.2 2002/08/28 15:51:12 ericx Exp $
# file is loaded up via what may be an oddity in the Mk configuration
# files in /usr/ports/Mk/bsd.port.mk AFTER all the variables are set
# in the various Makefiles. Unlike /etc/make.conf, this gives an
# opportunity to override settings in port Makefiles.
.if exists(/etc/make.conf.vni)
# But the file exists, pull it in.
.include </etc/make.conf.vni>
.endif
Then in /etc/make.conf.vni I have the per-port flags:
# -*- makefile -*-
# File: make.conf.vni
# Author: Charlie Root, ericx@vineyard.net
# Date: Wed Aug 28 12:46:05 2002
# Time-stamp: <2005-07-13 10:18:55 ericx>
# Description: Setting variable in /etc/make.conf is not optimal
# because those variables are read very early in the
# compilation process and anything can be overridden in
# the various Makefiles embedded in the ports
# system. Nor can variables in /etc/make.conf be set on
# a per-port basis, because at the time it is read
# ${PORTNAME} has not been set.
#
# This file is read in at the END of makes parsing phase
# after all other Makefiles have been
# included. Conditional variables can be can be set
# based on ${PORTNAME} and decisions made by the port's
# maintainer can be overridden.
#
# See also: /etc/make.conf, /usr/Makfile.inc, /usr/ports/Mk
#
# $Id: make.conf.vni,v 1.14 2005/06/29 21:08:43 theqblas Exp ericx $
# ${PORTNAME} should be defined whenever we are building a port, but
# not when we are building world; so enclose all our per port
# conditionals inside a single check for PORTNAME.
.if defined(PORTNAME)
.if ${PORTNAME} == apache+mod_ssl
CONFIGURE_ARGS+= --server-uid=http \
--server-gid=http \
--disable-rule=EXPAT
# apache+mod_ssl
.endif
# PORTNAME
.endif
> I know I could look in the makefiles and stuff, but I really don't have
> that kind of time (damn sys. admining) Is there some documentation or
> something I don't know about that answers questions like these? I mean
> the handbook is great for general config. questions, but I'm more
> interested in server farm management and maintenance.
>
> Thank you very much in advance for any help.
> Hopefully I won't have many more stupid questions.
>
> -Mike
>
>
> _______________________________________________
> freebsd-isp@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-isp
> To unsubscribe, send any mail to "freebsd-isp-unsubscribe@freebsd.org"
>
>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43C7FC35.9000806>
