This cookbook installs and configures the Cockpit server administration interface.
- Supports RHEL 7.x
- Install and configure Cockpit service with packages from Red Hat Extras repo
- Optionally install Cockpit features - PCP metrics logging and Kubernetes dashboard
- Deploy custom SSL certificate for Cockpit from Chef Vault or a Chef data bag
- Configure firewalld and SELinux policies for Cockpit
- Specify port for Cockpit console
- Tested to work with Chef 12.7.x or higher
- Requires a system with a valid and active Red Hat Subscription and access to Red Hat repositories from redhat.com or via Satellite / Katello.
This is intended to be the first of a series of simple cookbooks for RHEL 7.x / CentOS 7.x. The idea is to have simple reusable code, minimal dependencies and stick to best practices for RHEL 7.x.
- Always use RPM installs, from official repos where possible
- Include options to configure SELinux, Firewalld, SystemD services
- Common dependencies to support configuration of yum repos, Red Hat subscriptions, manage config files with Augeas, firewalld, and SELinux policies.
Place a dependency on the cockpit
cookbook in your
cookbook's metadata.rb:
depends 'cockpit', '~> 0.4.0'
Or include the default recipe in your run list as 'recipe[cockpit]'
.
This cookbook depends on the firewalld cookbook, the augeas cookbook and the Red Hat Subscription Manager cookbook.
These attributes can be used to customize the Cockpit install.
node['cockpit']['port']
- Modify the listen port for Cockpit.
Defaults to 9090.node['cockpit']['logintitle']
- Set the LoginTitle attribute in cockpit.conf, which is shown on the login page.node['cockpit']['features']['pcp']
- Install the PCP framework to allow Cockpit to store system metrics.node['cockpit']['features']['kubernetes']
- Install the Kubernetes dashboard. At the moment this uses the CentOS 7 Extras repo to get the cockpit-kubernetes package.node['cockpit']['configure_repo']
- Configure / enabled yum repositories for Cockpit as specified bynode['cockpit']['repo']
node['cockpit']['repo']
- Three allowed values here:
rhel-7-server-extras-rpms
: Use RHEL Extras repo for Cockpit packages, exceptcockpit-kubernetes
, if enabled, which has to come form CentOS Extras.
centos-extras
: Configure CentOS 7 Extras repo to install Cockpit packages only. It is preferable to use theyum-centos
cookbook instead.
cockpit-preview
- Install the latest, bleeding edge versions of Cockpit packages from the cockpit-preview COPR repo
A custom SSL certificate and key can be provided as follows:
node['cockpit']['ssl_vault']
- Name of data bag or Chef vaultnode['cockpit']['ssl_item']
- Name of item in vault / data bag containing JSON keys for the certificate (cert
) and private key (key
) in the PEM format. Seetest/integration/data_bags
for an example.
Integration tests are written in BATS
- Fork it ( https://github.com/colourmeamused/cockpit-cookbook )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request