Changes between Version 27 and Version 28 of FeddDownload
- Timestamp:
- Jun 10, 2014 3:32:53 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FeddDownload
v27 v28 1 [[TOC()]] 1 2 2 3 = Downloading and Installing fedd = … … 48 49 49 50 {{{ 50 $ tar xzf -C /tmp fedd- 3.50b.tar.gz51 $ cd /tmp/fedd- 3.50b51 $ tar xzf -C /tmp fedd-4.00b.tar.gz 52 $ cd /tmp/fedd-4.00b 52 53 $ sudo python ./setup.py install 53 54 $ cd 54 $ sudo rm -rf /tmp/fedd- 3.50b55 $ sudo rm -rf /tmp/fedd-4.00b 55 56 }}} 56 57 … … 58 59 scripts: 59 60 `/usr/local/bin/access_to_abac.py`:: 60 [wiki:FeddABAC#access_to_abac.py converts] existing access controller DBs to ABAC.61 [wiki:FeddABAC#access_to_abac.py converts] access controller authorization databases to ABAC. 61 62 `/usr/local/bin/cert_to_fedid.py`:: 62 63 create a self-signed certificate from an existing hierarchical X.509 certificate and key. 63 `/usr/local/bin/confirm_sshkey.py`::64 used in certain static project installs, see [FeddConfig configuring]65 64 `/usr/local/bin/creddy_split.py`:: 66 65 Split a combination X.509 certificate and key file into two separate files, useful for working with the [http://abac.deterlab.net libabac] [http://abac.deterlab.net/wiki/Creddy creddy] utility … … 97 96 `/usr/local/bin/fedid.py`:: 98 97 command line tool for getting fedids from X509 certificates 99 `/usr/local/bin/user_to_project.py`::100 used in dynamic project installs, see [FeddConfig configuring]101 98 102 99 These scripts are documented in more detail on the [FeddCommands commands page]. … … 107 104 108 105 109 == Additional scripts ==110 106 111 If you intend to use dynamic project manipulation, you will need to 112 install patched versions of the addpubkey and grantnodetype scripts on 113 boss. These patches extend those commands to revoke access/keys or 114 confirm the presence of access or keys. 107 == The Federation Kit (fedkit) == 115 108 116 The patches are here: 117 * [attachment:addpubkey.patch addpubkey] 118 * [attachment:grantnodetype.patch grantnodetype] 109 The federation kit is the software used by `fedd` to connect testbeds and tunnel services from the master to the other testbeds. Currently we have a single [attachment:fedkit.tgz fedkit] that provides SSH tunnels to connect experimental testbeds at the ethernet layer, tunnels the DETER/Emulab event system and provides shared file service via [http://en.wikipedia.org/wiki/Server_Message_Block SMB]. That fedkit runs on any FreeBSD or Linux image that provides the SMB file system. 119 110 120 To avoid inadvertently interfering with testbed operation, we suggest 121 making modified shadow commands on boss called taddpubkey and 122 tgrantnodetype. Note the leading 't' on the shadow commands. You can 123 do this by doing the following on boss (where the patch files come from 124 wherever you saved them): 111 By splitting this function out, we intend to allow different installations of `fedd` to provide different interconnection and service tunneling function. Currently the DETER fedkit is the only federation kit in use, and `fedd` defaults its startcmd options for use with it. 125 112 126 {{{ 127 $ cd /tmp 128 $ cp /usr/testbed/sbin/addpubkey . 129 $ patch < addpubkey.patch 130 $ sudo mv addpubkey /usr/testbed/sbin/taddpubkey 131 $ sudo chown root:wheel /usr/testbed/sbin/taddpubkey 132 $ sudo chmod 4755 /usr/testbed/sbin/taddpubkey 133 }}} 113 To install fedd, the administrator must download a copy and put it where fedd can read it, usually `/usr/local/etc/fedd` and set the '''fedkit''' parameter in the [experiment_control] section of the [FeddConfig#ExperimentControlOptions config file] to be the pathname of the tar file. 134 114 135 {{{ 136 $ cd /tmp 137 $ cp /usr/testbed/sbin/grantnodetype . 138 $ patch < grantnodetype.patch 139 $ sudo mv grantnodetype /usr/testbed/sbin/tgrantnodetype 140 $ sudo chown root:wheel /usr/testbed/sbin/tgrantnodetype 141 }}} 115 === Fedkit Functions and Configuration === 142 116 143 Note that taddpubkey will be setuid root (just like addpubkey is) and 144 that grantnodetype will not. The permissions need to match those of the 145 original command. They will fail with different ones. 117 In standard operation, the fedkit is configured and invoked by fedd. This section provides some details on the inner workings of the kit that may be helpful in debugging. 146 118 147 Once the scripts exist, make sure you configure the [allocate] section 148 of the configuration file to use them, e.g.: 119 The federation kit has 2 roles 149 120 150 {{{ 151 [allocate] 152 addpubkey: /usr/testbed/sbin/taddpubkey 153 grantnodetype: /usr/testbed/sbin/tgrantnodetype 154 }}} 121 * Configuring experiment nodes to use [FeddAbout#ExperimentServices services], such as shared file systems. 122 * Configuring portal nodes to connect experiments 155 123 156 See the [FeddConfig configuration section] for more detail. 124 ==== Fedkit on Experiment Nodes ==== 157 125 158 == Federation Kit == 126 On experiment nodes, the fedkit starts dynamic routing, and optionally configures user accounts and samba filesystems if they are in use. The system expects the following software to be available: 159 127 160 The federation kit includes the software that provides the shared environment in the federated experiment. It is described in more detail in the [FeddAbout#TheFederationKit overview of the system.] The version we primarily use is available for [attachment:fedkit.tgz download]. Download it, put it somewhere that `fedd` can read it, like `/usr/local/etc/fedd` and set the '''fedkit''' parameter in the [experiment_control] section of the [FeddConfig#ExperimentControlOptions config file] to be the pathname of the tar file. 128 * quagga routing system (an old gated installation will also work) 129 * samba-client 130 * smbfs 131 132 Those are the linux package names; equivalent FreeBSD packages will also work. For software to be available is for it to be either installed or accessible using {{{yum}}} or {{{apt-get}}}. DETER nodes have a local repository for that purpose. 133 134 The fedkit is installed in {{{/usr/local/federation}}} and when run places a log in {{{/tmp/federate}}}. 135 136 Services are initialized based on the contents of {{{/usr/local/federation/etc/client.conf}}}. Possible values include: 137 138 '''!ControlGateway''':: 139 The DNS name (or IP address) of the node that will forward services 140 '''Hide''': 141 Do nat add this node to the node's view of the experiment. Used for [FeddMulti multi-party experiments]. 142 '''!PortalAlias''':: 143 A name that will be mapped to the same IP address as the control gateway. SEER in particular expects nodes with certain functions to have certain names. 144 '''!ProjectUser''':: 145 The local user under which to mount shared project directories 146 '''!ProjectName''':: 147 Project name to derive shared project directories from 148 '''Service''':: 149 a string naming the [FeddAbout#ExperimentServices services] to initialize. 150 '''SMBShare''':: 151 The name of the share to mount 152 153 154 155 ==== Fedkit on Portal Nodes ==== 156 157 On portal nodes the fedkit uses ssh to interconnect the segments and bridges traffic at layer 2. If the portal node is a Linux image it needs to have the {{{bridge-tools}}} package available. Like the fedkit on experiment nodes, it will attempt to load that software from repositories if it is not present. 158 159 The fedkit configures the portal based on the contents of a configuration file containing the following parameters: 160 161 '''active''':: 162 a boolean. If true this portal will initiate ssh connections to its peer. 163 '''nat_partner''':: 164 a boolean. If true the fedkit's peer is behind a network address translator. Not used yet. 165 '''tunnelip''':: 166 a boolean. If true use the DETER system for binding external addresses. 167 '''peer''':: 168 a string. A list of DNS names or IP addresses. Usually this is one value, the DNS name of the peer, but passive ends of NATted portals may use a list of addresses to establish routing. 169 '''ssh_pubkey''':: 170 a string. A file in which the access controller has placed the ssh key shared by this portal and its peer. These are nonce keys discarded after the experiment ends. 171 '''ssh_privkey''':: 172 a string. A file in which the access controller has placed the ssh key shared by this portal and its peer. These are nonce keys discarded after the experiment ends. 173 174 The passive portal node establishes routing connectivity to the active end, reconfigures the local sshd to allow link layer forwarding and to allow the active end to remotely configure it, and waits. The active end connects through ssh, establishes a link layer forwarding tunnel and bridges that to the experimental interface. It also forwards ports to connect experiment services. 175 161 176 162 177 == Git access ==