[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: reset actionsequence after import.
From: |
Mark . Burgess |
Subject: |
Re: reset actionsequence after import. |
Date: |
Wed, 27 Aug 2003 17:54:47 +0200 (MEST) |
Working on real functions with private actionseqs in 2.1.0....
Got....to...work.......harderrr......:(
On 27 Aug, Wheeler, John wrote:
> Someone else pointed this out to me, it wasn't clear how usefull this
> was. Try appending a class to the action:
>
> #more casinoDeploy.conf
> control:
> actionsequence = (
> shellcommands.casinoDeploy
> )
> TAG = ( deploy_casino_20030819 )
> CVSTAGFILES = ( "sysops/applications/casino/cvstagfiles" )
> SOURCEDIR = ( /export/home/deploy )
> ANTHOME = ( /usr/local/ant )
> payment_qa::
> hostname = ( casino )
> IP_suf = ( 49 )
> IP_pre = ( 10.7.1 )
> IP = ( "${IP_pre}.${IP_suf}" )
> paymenthost = ( "epayhipvar.paymentech.net" )
> routeline = ( "route add -host ${paymenthost} ${IP}
> -interface" )
>
> shellcommands:
> casinoDeploy::
> '/bin/su - deploy -c "cvs checkout -r $(TAG)
> ${CVSTAGFILES}"'
> '/bin/su - deploy -c "${CVSTAGFILES} $(TAG)"'
>
> import:
> casinoAppSite.conf
> casinoAppDeploy.conf
>
>
>
>
> # more casinoAppSite.conf
> import:
> ifconfig.conf
> paymentuser.conf
>
> # more ifconfig.conf
> control:
> actionsequence = (
> editfiles.ifconfig
> shellcommands.ifconfig
> )
> Split = ( ; )
> ifstring = ( "netmask + broadcast + up" )
> interface_name = ( "hme0:$(IP_suf)" )
> hoststring = ( "$(IP)$(tab)$(hostname)" )
>
> editfiles:
> ifconfig::
> { /etc/hosts
> Inform "on"
> BeginGroupIfNoSuchLine "${hoststring}"
> Append "${hoststring}"
> EndGroup
> }
> { /etc/hostname.$(interface_name)
> AutoCreate
> BeginGroupIfNoSuchLine "$(hostname)"
> Append "$(hostname)"
> EndGroup
> }
>
> shellcommands:
> ifconfig::
> '/sbin/ifconfig $(interface_name) >/dev/null 2>&1'
> define=ifexists
> !ifexists.ifconfig::
> '/sbin/ifconfig $(interface_name) plumb'
> '/sbin/ifconfig $(interface_name) $(IP) $(ifstring)'
>
> # more paymentuser.conf
> control:
>
> actionsequence = (
> directories.paymentuser
> copy.paymentuser
> editfiles.paymentuser
> )
>
> directories:
>
> paymentuser::
> /export/home/payment
> mode=755
> inform=on
> owner=102333
> group=20000
> inform=true
> /export/home/payment/.ssh
> mode=700
> inform=on
> owner=102333
> group=20000
> inform=true
>
> copy:
>
> paymentuser::
> /cfengine/users/payment
> dest=/export/home/payment
> recurse=inf
> owner=102333
> group=20000
> exclude=id_rsa
> mode=700
> inform=true
> server=$(masterhost)
>
> editfiles:
> paymentuser::
> { /export/home/payment/.profile
> ReplaceAll "@ANTHOME@" With "${ANTHOME}"
> }
>
>
>
>
>
> ok, you get the idea, basically I try to write "functions" in cfengine
> and control the functions with macros/variables. My final action
> sequence is something like
>
> shellcommands.casinoDeploy
> directories.paymentuser
> copy.paymentuser
> editfiles.paymentuser
> editfiles.ifconfig
> shellcommands.ifconfig
> ....
>
> What's important is that I can perform one shellcommand to do one thing,
> then later perform another shellcommand to do something else.
>
> I think that the notion of "passes" (pass 1 vs pass 2) may also be used
> in a similar way.
>
>
>
> -----Original Message-----
> From: Hans Deragon [mailto:hans@deragon.biz]
> Sent: Wednesday, August 27, 2003 10:11 AM
> To: help-cfengine@gnu.org
> Subject: reset actionsequence after import.
>
> This is a repost, since it did not show up in the mailing list the first
> time...
> My first post was on aug 26, 10:21.
>
> --------------
>
> Greetings.
>
>
> I am trying to build a very modular hiearchy of cf.* files using the
> import:
> command. However, I have stumbled on a little problem.
>
> I define and actionsequence within each of my imported files.
> However, the
> actionsequences add up instead of being reseted per file. For instance,
> if
> file cf.A imports file cf.B and the following is to be found in the
> files:
>
> File cf.A:
>
> control:
>
> actionsequence =
> (
> editfiles
> )
>
> import:
>
> cf.B
>
> File cf.B
>
> control:
>
> actionsequence =
> (
> copy
> editfiles
> shellcommands
> )
>
> The final action sequence when executing would be { editfiles, copy,
> editfiles,
> shellcommands }, thus running the editfiles command prior the copy
> command when
> cf.B is run (which is a problem because I need the file to be copied
> before it
> is being edited).
>
> Is there a way to instruct cfengine to only execute the actionsequence
> of cf.B
> when running the commands found in cf.B? I want cf.B to inherit its
> configuration from cf.A, but I do not want it to inherit the action
> sequence.
>
> I am going to have a dozen of cf.* files. I thought that I could all
> have the
> executed in one cfagent call. But if their actionsequence command get
> mangled,
> then I guess I will have to call cfagent 12 times. Is this what I am
> supposed
> to do?
>
>
> Best regards,
> Hans Deragon
> --
> Consultant en informatique/Software Consultant
> Deragon Informatique inc. Open source:
> http://www.deragon.biz http://swtmvcwrapper.sourceforge.net
> mailto://hans@deragon.biz http://autopoweroff.sourceforge.net
>
>
>
>
> _______________________________________________
> Help-cfengine mailing list
> Help-cfengine@gnu.org
> http://mail.gnu.org/mailman/listinfo/help-cfengine
>
>
> _______________________________________________
> Help-cfengine mailing list
> Help-cfengine@gnu.org
> http://mail.gnu.org/mailman/listinfo/help-cfengine
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Work: +47 22453272 Email: Mark.Burgess@iu.hio.no
Fax : +47 22453205 WWW : http://www.iu.hio.no/~mark
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~