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-centoscookbook 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_bagsfor 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