Installs/Configures Bahamut IRC daemon. Please see COMPATIBILITY.md for more information about Bahamut releases that are tested and supported by this cookbook and its versions.
- CentOS 6
- RedHat 6
- Ubuntu 12.04
Required Opscode Cookbooks
These attributes are under the node['confluence']
namespace.
Attribute | Description | Type | Default |
---|---|---|---|
checksum | SHA256 checksum for Bahamut install | String | auto-detected (see attributes/default.rb) |
configure_flags | Flags for Bahamut ./configure | String | auto-detected (see attributes/default.rb) |
home_path | Location for Bahamut user home | String | /home/#{node['bahamut']['user']} |
install_path | Location for Bahamut installation | String | #{node['bahamut']['home_path']/bahamut |
url | URL for Bahamut install | String | auto-detected (see attributes/default.rb) |
user | user running Bahamut | String | ircd |
version | Bahamut version to install | String | 2.0.5 |
recipe[bahamut]
Installs/configures Bahamutrecipe[bahamut::configuration]
Configures Bahamutrecipe[bahamut::source_installation]
Compiles and installs Bahamut from source
For securely configuring Bahamut on Hosted Chef, create a ircd/bahamut
encrypted data bag with the model below. Chef Solo can override the same attributes with a ircd/bahamut
unencrypted data bag of the same information.
Documentation for Bahamut configuration: https://github.com/epiphani/bahamut/blob/master/doc/reference.conf
required:
- `['global']['info'] server info
- `['global']['name'] server name
['port']
Array of port Hashes['port']
port number
optional:
['admin']
Hash of admin Strings['line1']
required['line2']
['line3']
['allow']
Array of allow Hashes- ['host'] required if no ipmask
- ['ipmask'] required if no host
- ['class']
- ['flags']
- ['passwd']
- ['port']
['class']
Array of class Hashes- ['maxsendq'] required
- ['name'] required
- ['pingfreq'] required
- ['connfreq']
- ['maxclones']
- ['maxlinks']
- ['maxrecvq']
- ['maxusers']
['connect']
Array of connect Hashes (will skip Hash ifname
matchesnode['fqdn']
)- ['apasswd'] required
- ['cpasswd'] required only if no apasswd for connect server
- ['host'] required
- ['name'] required
- ['bind']
- ['class']
- ['flags']
- ['port']
['global']['dpass']
['global']['rpass']
- `['options'] Hash of options
['key']: value
['include']
path to include another configuration file['kill']
Array of kill Hashes['mask']
required['reason']
['modules']['autoload']
Array of modules['modules']['path']
['oper']
Array of oper Hashes- ['access'] required
- ['host'] required Array of masks
- ['name'] required
- ['passwd'] required
- ['class']
['port']
Array of port Hashes['bind']
['ipmask']
['flags']
['restrict']
Array of restrict Hashes['mask']
required['type']
required['reason']
['super']
Array of super servers
Repeat for Chef environments as necessary. Use a FQDN key to override attributes. Example:
{
"id": "bahamut",
/* Example of per-FQDN settings */
"irc1.example.com": {
"admin": {
"line1": "Managed by admins from here"
}
},
"irc2.example.com": {
"admin": {
"line1": "Managed by admins from there"
}
},
/* Example of shared per-environment settings */
"production": {
/* cpasswd will automatically generate if necessary */
"connect": [
{
"apasswd": "irc2.apasswd",
"host": "W.X.Y.Z",
"name": "irc1.example.com",
"port": 7325
},
{
"apasswd": "irc1.apasswd",
"host": "W.X.Y.Z",
"name": "irc2.example.com",
"port": 7325
}
]
"global": {
"info": "Example IRC Server",
"name": "irc.example.com"
},
"oper": [
{
"access": "*Aa",
"class": "opers",
"host": [ "ident@hostmask" ],
"name": "johndoe",
"passwd": "mypassword"
}
]
"port": [
{
"flags": "i",
"port": 6667
},
{
"flags": "ni",
"port": 7325
},
{
"flags": "iS",
"port": 7777,
},
]
}
}
The simplest method is via the default recipe.
- Create required (un)encrypted data bag for configuration
knife data bag create ircd
knife data bag edit ircd bahamut --secret-file=path/to/secret
- Add
recipe[bahamut]
to your node's run list.
Here's how you can quickly get testing or developing against the cookbook thanks to Vagrant and Berkshelf.
git clone git://github.com/bflad/chef-bahamut.git
cd chef-bahamut
vagrant plugin install berkshelf # if not already installed
vagrant up BOX # BOX being centos6 or ubuntu1204
Add the following hosts entries to your workstation:
- 33.33.33.10 bahamut-centos-6
- 33.33.33.11 bahamut-ubuntu-1204
The running Bahamut server is accessible from:
CentOS 6 Box:
- IRC: bahamut-centos-6:6667
- IRC (SSL): bahamut-centos-6:7777
Ubuntu 12.04 Box:
- IRC: bahamut-ubuntu-1204:6667
- IRC (SSL): bahamut-ubuntu-1204:7777
You can then SSH into the running VM using the vagrant ssh
command.
The VM can easily be stopped and deleted with the vagrant destroy
command. Please see the official Vagrant documentation
for a more in depth explanation of available commands.
Please use standard Github issues/pull requests and if possible, in combination with testing on the Vagrant boxes.
Author:: Brian Flad (bflad417@gmail.com)
Copyright:: 2013
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.