/os-conf-release

Additional Linux OS configuration release

Primary LanguageGoApache License 2.0Apache-2.0

BOSH Linux OS Configuration Release

Enables configuration of a typical Linux OS:

  • customize login banner text (job: login_banner)
  • add UNIX users to VM (job: user_add)
  • add system wide CA certificates (job: ca_certs)
  • configure resolv.conf search domain (job: resolv)
  • change TCP keepalive kernel args (job: tcp_keepalive)
  • apply arbitrary sysctls (job: sysctl)
  • disable port forwarding (job: harden_sshd)
    • Note: use with caution, as this can have unintended consequences on features such as SSH Access and Tunneling.

See https://github.com/cloudfoundry-incubator/windows-utilities-release for Windows OS configuration.

For a description of these and other functions, see jobs/.

Usage

Include the release:

releases:
  name: os-conf
  version: latest

Examples

In this example, we use BOSH's Runtime Config to customize login banner and create two users: first, an operator user with an encrypted password; second, a backup user with an ssh-key:

addons:
  - name: os-configuration
    jobs:
    - name: login_banner
      release: os-conf
      properties:
        login_banner:
          text: |
            Authorized Use Only.
            Unauthorized use will be prosecuted to the fullest extent of the law.
    - name: user_add
      release: os-conf
      properties:
        persistent_homes: true
        users:
        - name: backup
          public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbss5XtLYRYDeV8AmouVYOHmYPxPsN4F59fZnY4kJnimM3sk5TbP0ow19GMDppQOPzAQ1TcYH4sYhpnxwq5f32XYtw12rFnO8BatHISWIdjoEjHfdA1qLIMGouWZPbGIQ1qURbfJdR9e2shS7U/WSXD+AJ9Zy0ZKTsIvlukWSX8Nsxvfn7VaAFvhgI3YPmhjV3TCEVMDsWGbBXlMq+qiJt22JEOw+3dnrvfGzRUULGznO/8y4NvVQsQc5KGnJkeQWkmlOIrhUGYwd/hMn6zQEIxkR4elmwp+pjyLR0qYLUFjpMn2GJMG7lvTzF8SzQLhzTVrjW1E3nve2eCuJ5bB6/"
          shell: /bin/zsh # OPTIONAL: Defaults to `/bin/bash`
          sudo: false # OPTIONAL: Defaults to `true`

In this example, we configure our BOSH deployment manifest to configure the DNS search domain to pivotal.io and the TCP keepalive kernel settings:

instance_groups:
- name: network-infrastructure
  jobs:
  - name: tcp_keepalive
    release: os-conf
    properties:
      tcp_keepalive:
        time:     120
        interval:  30
        probes:     8
  - name: resolv
    release: os-conf
    properties:
      search: pivotal.io

See manifests/ and jobs/*/spec for more examples.