GithubHelp home page GithubHelp logo

ncstate-daniel / puppet-chocolatey_server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from chocolatey-community/puppet-chocolatey_server

0.0 2.0 0.0 38 KB

Chocolatey Simple Server Puppet Module

License: Apache License 2.0

Ruby 7.59% Puppet 40.12% HTML 52.29%

puppet-chocolatey_server's Introduction

Chocolatey Simple Server

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with chocolatey
  4. Usage - Configuration options and additional functionality
  5. Reference
  6. Limitations - OS compatibility, etc.
  7. Development - Guide for contributing to the module

Overview

Sets up a Simple Server for Chocolatey packages. Allows you to host your own packages, many times as a private package repository (feed).

Module Description

There are three types of package feeds for Chocolatey - local folder/CIFS (UNC) share, simple server, and the sophisticated package gallery. Simple server is in the middle and most widely used Chocolatey/NuGet Package Server format.

Advantages:

  • Push over HTTP/HTTPS.
  • API key for pushing packages.
  • No direct access to packages - acls are locked down to just admins and push through api key.
  • Package store is file system.

Disadvantages:

  • Only one API key, so no multi user scenarios.
  • Starts to affect choco performance once the source has over 500 packages (maybe?).
  • No moderation.
  • No website to view packages.
  • No package statistics.

For more details about the other types of package feeds, see host your own feed.

Setup

What Chocolatey Server affects

  • Will create files at c:\tools\chocolatey.server.
  • Will install IIS and ASP.NET if not already installed.
  • Will remove the default website.
  • Sets up a website on port 80 (configurable) pointing to chocolatey.server

Setup Requirements

Beginning with Chocolatey Server

Install this module via any of these approaches:

Usage

Ensure the server is installed and configured:

include chocolatey_server

Use a different port

class {'chocolatey_server':
  port => '8080',
}

Use an internal source for installing the chocolatey.server package

class {'chocolatey_server':
  server_package_source => 'http://someinternal/nuget/odatafeed',
}

Use a local file location for the chocolatey.server package

class {'chocolatey_server':
  server_package_source => 'c:/folder/containing/packages',
}

Set a different apikey and allow packages to be overwritten

class { 'chocolatey_server':
  apikey                 => 'Sup3rS3cret',
  allow_package_override => true,
}

Use a alternate package folder and port without disabling default website

class { 'chocolatey_server':
  disable_default_website => false,
  packages_folder         => 'C:\Chocolatey',
  port                    => '8080',
}

Set different permissions on the packages folder

class { 'chocolatey_server':
  packages_folder_permissions = [
    { identity => 'IIS APPPOOL\\chocolatey.server', rights => ['modify'] },
    { identity => 'IIS_IUSRS', rights => ['modify'] },
    { identity => 'Users', rights => ['read'] },
  ]
}

Reference

Classes

Public classes

Class: chocolatey_server

Host your own Chocolatey package repository

Parameters

allow_package_override

Controls whether or not packages can be overwritten if a package with the same id and version already exist. Defaults to 'false'.

apikey

Set the apikey for chocolatey server used to push packages. Defaults to 'chocolateyrocks'.

chocolatey_server_app_pool_name

Set apppool name used by the chocolatey.server website. Defaults to 'chocolatey.server'.

chocolatey_server_ensure

Ensure the version of chocolatey server to install. Defaults to 'install'.

disable_default_website

The default website is stopped to prevent conflicts with the chocolatey server website. An alternate port can be defined and this option can be set to disabled so it doesn't modify the default website. Defaults to 'true'.

max_file_size_bytes

If you want to allow larger files to be pushed via the chocolatey api, you can set this value in bytes to increase the limit. Defaults to '52428800' bytes.

packages_folder

An alternate folder can be defined for the .nupkg files. This is where the nuget packages are actually stored that will be served by the chocolatey server.

Note: This is different from 'server_package_source' as that defines where the chocolatey.server package is located.

packages_folder_permissions

Set permissions on packages folder. Defaults to:

  • IIS APPOOL${chocolatey_server_app_pool_name} - modify
  • IIS_IUSRS - modify

The permissions should be passed as an array of identity and permissions.

port

The port for the server website. Defaults to '80'.

require_apikey

Controls whether or not an apikey is required to push packages to the chocolatey server. Defaults to 'true'.

server_package_source

The Chocolatey source that contains the chocolatey.server package. Defaults to 'https://chocolatey.org/api/v2/'.

Limitations

Works with Windows only.

Development

We like Pull Requests!

puppet-chocolatey_server's People

Contributors

ferventcoder avatar ncstate-daniel avatar ripclawffb avatar iristyle avatar marshyski avatar

Watchers

Daniel Henninger avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.