summaryrefslogtreecommitdiffstats
path: root/doc/unsorted/altsrc.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/unsorted/altsrc.txt')
-rw-r--r--doc/unsorted/altsrc.txt102
1 files changed, 0 insertions, 102 deletions
diff --git a/doc/unsorted/altsrc.txt b/doc/unsorted/altsrc.txt
deleted file mode 100644
index 251781d28..000000000
--- a/doc/unsorted/altsrc.txt
+++ /dev/null
@@ -1,102 +0,0 @@
-.. -*- mode: rst -*-
-
-.. _unsorted-altsrc:
-
-===========================
-Fun and Profit using altsrc
-===========================
-
-Altsrc is a generic, bcfg2-server-side mechanism for performing
-configuration entry name remapping for the purpose of data binding.
-
-Use Cases
-=========
-
-* Equivalent configuration entries on different architectures with
- different names
-
-* Mapping entries with the same name to different bind results in a
- configuration (two packages with the same name but different types)
-
-* A single configuration entry across multiple specifications
- (multi-plugin, or multi-repo)
-
-Examples
-========
-
-* Consider the case of /etc/hosts on linux and ``/etc/inet/hosts`` on
- solaris. These files contain the same data in the same format,
- and should typically be synchronized, however, exist in different
- locations. Classically, one would need to create one entry for each in
- Cfg or TCheetah and perform manual synchronization. Or, you could use
- symlinks and pray. Altsrc is driven from the bundle side. For example:
-
- .. code-block:: xml
-
- <Bundle name='netinfo'>
- <Group name='solaris'>
- <Path name='/etc/inet/hosts' altsrc='/etc/hosts'/>
- </Group>
- <Group name='linux'>
- <Path name='/etc/hosts'/>
- </Group>
- </Bundle>
-
- In this case, when a solaris host gets the 'netinfo' bundle, it will
- get the first Path entry, which includes an altsrc parameter. This
- will cause the server to bind the entry as if it were a Path
- called ``/etc/hosts``. This configuration entry is still called
- ``/etc/inet/hosts``, and is installed as such.
-
-* On encap systems, frequently multiple packages of the same name, but
- of different types will exist. For example, there might be an openssl
- encap package, and an openssl rpm package. This can be dealt with
- using a bundle like:
-
- .. code-block:: xml
-
- <Bundle name='openssl'>
- <Package name='openssl' altsrc='openssl-encap'/>
- <Package name='openssl' altsrc='openssl-rpm'/>
- </Bundle>
-
- This bundle will bind data for the packages "openssl-encap" and
- "openssl-rpm", but will be delivered to the client with both packages
- named "openssl" with different types.
-
-* Finally, consider the case where there exist complicated, but
- completely independent specifications for the same configuration entry
- but different groups of clients. The following bundle will allow the use
- of two different TCheetah templates ``/etc/firewall-rules-external``
- and ``/etc/firewall-rules-internal`` for different clients based on
- their group membership.
-
- .. code-block:: xml
-
- <Bundle name='firewall'>
- ...
- <Group name='conduit'>
- <Path name='/etc/firewall-rules' altsrc='/etc/firewall-rules-external'/>
- </Group>
- <Group name='internal'>
- <Path name='/etc/firewall-rules' altsrc='/etc/firewall-rules-internal'/>
- </Group>
- </Bundle>
-
-* Consider the case where a variety of files can be constructed by a
- single template (TCheetah or TGenshi). It would be possible to copy
- this template into the proper location for each file, but that requires
- proper synchronization upon modification and knowing up front what
- the files will all be called. Instead, the following bundle allows
- the use of a single template for all proper config file instances.
-
- .. code-block:: xml
-
- <Bundle name='netconfig'>
- <Path name='/etc/sysconfig/network-scripts/ifcfg-eth0' altsrc='/etc/ifcfg-template'/>
- <Path name='/etc/sysconfig/network-scripts/ifcfg-eth1' altsrc='/etc/ifcfg-template'/>
- <Path name='/etc/sysconfig/network-scripts/ifcfg-eth2' altsrc='/etc/ifcfg-template'/>
- </Bundle>
-
- altsrc can be used as a parameter for any entry type, and can be used
- in any structure, including Bundler and Base.