cookbook 'apt_utils', '~> 0.3.0'
apt_utils (8) Versions 0.3.0 Follow0
Installs/Configures APT
cookbook 'apt_utils', '~> 0.3.0', :supermarket
knife supermarket install apt_utils
knife supermarket download apt_utils
apt_utils Cookbook
This cookbook includes apt utility (apt-cacher-ng, apt mirroring site setup and apt source configuration) recipes.
Contents
Requirements
packages
apt
-
docker-grid
>= 0.2.7 -
platform_utils
>= 0.4.3 -
ssl_cert
>= 0.3.7
Attributes
apt_utils::default
Key | Type | Description (with examples) | Default |
---|---|---|---|
['apt_utils']['conf']['proxy']['sequence'] |
String | Sequence number of apt proxy configuration file (ver. 0.1.1 or later) | '80' |
['apt_utils']['conf']['proxy']['ftp'] |
String | Proxy setting for FTP (ver. 0.1.1 or later) | 'nil' |
['apt_utils']['conf']['proxy']['http'] |
String | Proxy setting for HTTP (ver. 0.1.1 or later) | 'nil' |
['apt_utils']['conf']['proxy']['https'] |
String | Proxy setting for HTTPS (ver. 0.1.1 or later) | 'nil' |
['apt_utils']['aptly']['apt_repo']['keyserver'] |
String | 'keys.gnupg.net' |
|
['apt_utils']['aptly']['apt_repo']['recv-keys'] |
String | '9E3E53F19C7DE460' |
|
['apt_utils']['aptly']['user'] |
String | 'root' |
|
['apt_utils']['aptly']['conf'] |
Hash |
aptly.conf configurations. |
See attributes/default.rb
|
['apt_utils']['aptly']['with_ssl_cert_cookbook'] |
Boolean | Activates TLS configurations by the ssl_cert cookbook. See attributes/default.rb
|
false |
['apt_utils']['aptly']['ssl_cert']['common_name'] |
String | Server common name for TLS | node['fqdn'] |
['apt_utils']['aptly']['docker-compose']['app_dir'] |
String | aptly app. root directory for docker-compose. | "#{node['docker-grid']['compose']['app_dir']}/aptly" |
['apt_utils']['aptly']['docker-compose']['etc_dir'] |
String | "#{node['apt_utils']['aptly']['docker-compose']['app_dir']}/etc" |
|
['apt_utils']['aptly']['docker-compose']['data_dir'] |
String | Persistent volume path or nil (unset). | "#{node['apt_utils']['aptly']['docker-compose']['app_dir']}/data" |
['apt_utils']['aptly']['docker-compose']['config'] |
Hash |
docker-compose.yml configurations. |
See attributes/default.rb
|
['apt_utils']['apt-cacher-ng']['autopilot']['enabled'] |
Boolean | APT Cacher NG autopilot feature flag. | false |
['apt_utils']['apt-cacher-ng']['autopilot']['log_dir'] |
String | log file's directory path. | '/var/log' |
['apt_utils']['apt-cacher-ng']['autopilot']['wait_time'] |
String | wait time after booted. | '120s' |
['apt_utils']['apt-cacher-ng']['autopilot']['check_period'] |
String | service check period. '#' means inactive. |
'*/5 * * * *' |
['apt_utils']['apt-cacher-ng']['CacheDir'] |
String | path to cache directory | '/var/cache/apt-cacher-ng' |
['apt_utils']['apt-cacher-ng']['LogDir'] |
String | path to log directory. | '/var/log/apt-cacher-ng' |
['apt_utils']['apt-cacher-ng']['Port'] |
String | service port number. | '3142' |
['apt_utils']['apt-cacher-ng']['BindAddress'] |
String | service bind address |
'' (0.0.0.0) |
['apt_utils']['apt-cacher-ng']['UseWrap'] |
String | with TCP Wrappers (ver. 0.1.2 or later) |
nil ('0' (default) or '1' (on)) |
['apt_utils']['mirror']['user'] |
String | service user. | 'apt-mirror' |
['apt_utils']['mirror']['cron_period'] |
String | cron period expression. |
'#0 4 * * *' (inactive) |
['apt_utils']['mirror']['base_path'] |
String | mirroring base path. | '/var/spool/apt-mirror' |
['apt_utils']['mirror']['nthreads'] |
String | worker threads number. | '20' |
['apt_utils']['mirror']['_tilde'] |
'0' |
||
['apt_utils']['mirror']['country'] |
String | mirroring source country. | 'us' |
['apt_utils']['mirror']['distributions']['debian'] |
Hash | Debian's mirroring apt lines. | refer to attributes/default.rb
|
['apt_utils']['mirror']['distributions']['ubuntu'] |
Hash | Ubuntu's mirroring apt lines. | refer to attributes/default.rb
|
['apt_utils']['source']['apt_lines']['ubuntu'] |
Array | apt source lines. | refer to attributes/default.rb
|
Usage
Recipes
apt_utils::apt
- includes
apt::default
recipe if the platform family isdebian
.
apt_utils::aptly
This recipe installs aptly
package.
-
roles/aptly.rb
: role example.
name 'aptly' description 'aptly' run_list( 'recipe[apt_utils::aptly]', )
apt_utils::aptly-docker-compose
This recipe generates a docker-compose.yml
file for the aptly service.
-
roles/aptly-docker-compose.rb
: role example.
name 'aptly-docker-compose' description 'aptly by docker-compose' run_list( # see https://osdn.net/projects/metasearch/scm/git/grid-chef-repo/blobs/master/roles/docker-new-repo.rb 'role[docker]', 'recipe[apt_utils::aptly-docker-compose]', ) aptly_port = '8080' aptly_api_port = '8081' override_attributes( 'apt_utils' => { 'aptly' => { 'docker-compose' => { 'config' => { 'version' => '2', 'services' => { 'reverseproxy' => { 'ports' => [ "#{aptly_port}:8080", "#{aptly_api_port}:8081", ], 'volumes' => [ # This volume will be set by the apt_utils::aptly-docker-compose recipe automatically. #"#{node['apt_utils']['aptly']['docker-compose']['etc_dir']}/nginx/nginx.conf:/etc/nginx/nginx.conf:ro" ], }, 'aptly' => { 'restart' => 'always', 'image' => 'whitestar/aptly', 'volumes' => [ # This volume will be set by the apt_utils::aptly-docker-compose recipe automatically. #"#{node['apt_utils']['aptly']['docker-compose']['data_dir']}:/aptly-data:rw", ], 'environment' => { }, }, }, }, }, }, }, )
-
roles/aptly-with-ssl-docker-compose.rb
: SSL setup role example.
name 'aptly-with-ssl-docker-compose' description 'aptly with SSL by docker-compose' run_list( #'recipe[ssl_cert::server_key_pairs]', # apt_utils cookbook < 0.2.4 'role[docker]', 'recipe[apt_utils::aptly-docker-compose]', ) aptly_port = '8080' aptly_api_port = '8081' cn = 'aptly.io.example.com' override_attributes( 'ssl_cert' => { #'common_names' => [ # cn, # apt_utils cookbook <= 0.2.6 #], }, 'apt_utils' => { 'aptly' => { 'with_ssl_cert_cookbook' => true, 'ssl_cert' => { 'common_name' => cn, }, 'docker-compose' => { 'config' => { 'version' => '2', 'services' => { 'reverseproxy' => { 'ports' => [ "#{aptly_port}:8080", "#{aptly_api_port}:8081", ], 'volumes' => [ # These volumes will be set by the apt_utils::aptly-docker-compose recipe automatically. #"#{node['apt_utils']['aptly']['docker-compose']['etc_dir']}/nginx/nginx.conf:/etc/nginx/nginx.conf:ro" # and server key pair volume conf. ], }, 'aptly' => { 'restart' => 'always', 'image' => 'whitestar/aptly', 'volumes' => [ # This volume will be set by the apt_utils::aptly-docker-compose recipe automatically. #"#{node['apt_utils']['aptly']['docker-compose']['data_dir']}:/aptly-data:rw", ], 'environment' => { }, }, }, }, }, }, }, )
SSL server keys and certificates management by the ssl_cert
cookbook
- create vault items.
$ ruby -rjson -e 'puts JSON.generate({"private" => File.read("aptly.io.example.com.prod.key")})' \ > > ~/tmp/aptly.io.example.com.prod.key.json $ ruby -rjson -e 'puts JSON.generate({"public" => File.read("aptly.io.example.com.prod.crt")})' \ > > ~/tmp/aptly.io.example.com.prod.crt.json $ cd $CHEF_REPO_PATH $ knife vault create ssl_server_keys aptly.io.example.com.prod \ > --json ~/tmp/aptly.io.example.com.prod.key.json $ knife vault create ssl_server_certs aptly.io.example.com.prod \ > --json ~/tmp/aptly.io.example.com.prod.crt.json
- grant reference permission to the Concourse host
$ knife vault update ssl_server_keys aptly.io.example.com.prod -S 'name:aptly-host.example.com' $ knife vault update ssl_server_certs aptly.io.example.com.prod -S 'name:aptly-host.example.com'
- modify run_list and attributes
run_list( #'recipe[ssl_cert::server_key_pairs]', # apt_utils cookbook < 0.2.4 'recipe[apt_utils::aptly-docker-compose]', ) override_attributes( 'ssl_cert' => { #'common_names' => [ # 'aptly.io.example.com', # apt_utils cookbook < 0.2.6 #], }, 'aptly-grid' => { 'with_ssl_cert_cookbook' => true, 'ssl_cert' => { 'common_name' => 'nexus.io.example.com', }, # ... }, )
apt_utils::conf
- deploys apt configuration files to the
/etc/apt/apt.conf.d
directory.
apt_utils::apt-cacher-ng
{ "name":"my_node", "run_list": [ "recipe[apt_utils::apt-cacher-ng]" ] }
apt_utils::mirror
{ "name":"my_node", "run_list": [ "recipe[apt_utils::mirror]" ] }
apt_utils::source
{ "name":"my_node", "run_list": [ "recipe[apt_utils::source]" ] }
License and Authors
- Author:: whitestar at osdn.jp
Copyright 2013-2017, whitestar 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.
Dependent cookbooks
apt >= 0.0.0 |
docker-grid >= 0.5.8 |
platform_utils >= 0.4.3 |
ssl_cert >= 0.4.2 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
apt_utils CHANGELOG
0.3.0
- adds the APT Cacher NG autopilot feature.
- refactoring.
0.2.6
- improves server key pair deployment for a aptly service.
0.2.5
- adds the
['apt_utils']['conf']['extra']
attribute.
0.2.4
- includes the
ssl_cert::server_key_pairs
recipe in theapt_utils::aptly
andapt_utils::aptly-docker-compose
recipes automatically.
0.2.3
- adds a reverse proxy (nginx) service with SSL setup feature to the
apt_utils::aptly-docker-compose
recipe.
0.2.2
- adds the
apt_utils::aptly-docker-compose
recipe.
0.2.1
- adds the
apt_utils::aptly
recipe.
0.2.0
- adds the
apt_utils::apt
recipe. - updates cookbook dependencies.
0.1.4
- update for Ubuntu 16.10
0.1.3
- update for Ubuntu 16.04
0.1.2
- adds the
['apt_utils']['apt-cacher-ng']['UseWrap']
attribute.
0.1.1
- adds APT proxy configuration recipe.
0.1.0
- Initial release of apt_utils
Collaborator Number Metric
0.3.0 failed this metric
Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
Contributing File Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
0.3.0 passed this metric
No Binaries Metric
0.3.0 passed this metric
Testing File Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.3.0 failed this metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
0.3.0 passed this metric
No Binaries Metric
0.3.0 passed this metric
Testing File Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.3.0 passed this metric
0.3.0 passed this metric
Testing File Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.3.0 failed this metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number