Update cookbooks for Ubuntu 16.04 TLS

This commit is contained in:
Greg Karékinian
2017-03-31 19:20:00 +02:00
parent 6430d71006
commit 8923d0d7ef
219 changed files with 2770 additions and 11511 deletions

View File

@@ -0,0 +1 @@
~FC016

View File

@@ -1,30 +1,56 @@
mysql2_chef_gem CHANGELOG
========================
# mysql2_chef_gem CHANGELOG
## 2.0.1 (2017-03-28)
- Include usage examples for installing on a mariadb server and included a note in the readme regarding the 2.0 changes.
## 2.0.0 (2017-03-28)
- Converted the previously HWRP resources/providers to a custom resource. This changes the behavior of choosing to install on mysql or mariadb in a breaking way. Instead of specifying the providers you need to call the resources directly. Specifying mysql2_chef_gem will default to mysql, but using mariadb will require using the mysql2_chef_gem_mariadb resource directly.
- Increase the minimum chef version to 12.5
- Require mysql cookbook 8.2+ and build-essential cookbook 2.4+
- Install the 0.4.5 gem by default
- Expand test recipe to cover more scenarios
- Switched testing to use Delivery local mode
- Switched from kitchen-docker to kitchen-dokken and removed testing for CentOS 5 / Ubuntu 12.04 as these are both going EOL
- Switched from Rubocop to cookstyle for linting
- Removed yum/apt from the Berksfile
- Remove test dependencies from the Gemfile and instead use ChefDK for testing
## 1.1.0 (2016-04-27)
- Added a chefignore file
- Loosen the dependency on mysql cookbook to allow for the use of the latest version
- Added source_url and issue_url metadata
- Added long_description metadata
- Removed the AWS based Test Kitchen testing and replaced with with kitchen-docker in Travis
- Updated Chefspec format to remove deprecation warnings
- Added Oracle Linux to the metadata
## 1.0.2 (2015-06-29)
1.0.2 (2015-06-29)
------------------
- Updating metadata to depend on mysql ~> 6.0
1.0.1 (2014-12-25)
------------------
## 1.0.1 (2014-12-25)
- Moving from recipe_eval in to include_recipe LWRP
1.0.0 (2014-12-23)
------------------
## 1.0.0 (2014-12-23)
- Replacing recipes with resources
- Mysql and MariaDB providers for linking mysql2 gem
- Expanded platform test coverage
0.1.1 (2014-09-15)
------------------
## 0.1.1 (2014-09-15)
- Correct a typo in documentation
- Correct a test failing with Travis CI
0.1.0 (2014-09-15)
------------------
## 0.1.0 (2014-09-15)
- Correct documentation
- Correct rubocop offenses
0.0.3 (2014-09-12)
------------------
## 0.0.3 (2014-09-12)
- Initial release (copy of mysql-chef_gem, but for mysql2)

View File

@@ -1,29 +1,20 @@
Mysql2 Chef Gem Installer Cookbook
==================================
# Mysql2 Chef Gem Installer Cookbook
[![Build Status](https://travis-ci.org/sinfomicien/mysql2_chef_gem.png)](https://travis-ci.org/sinfomicien/mysql2_chef_gem)
[![Build Status](https://travis-ci.org/sinfomicien/mysql2_chef_gem.svg)](https://travis-ci.org/sinfomicien/mysql2_chef_gem) [![Cookbook Version](http://img.shields.io/cookbook/v/mysql2_chef_gem.svg)](https://supermarket.chef.io/cookbooks/mysql2_chef_gem)
mysql2_chef_gem is a library cookbook that provides an LWRP for use
in recipes. It provides a wrapper around `chef_gem` called
`mysql2_chef_gem` that eases the installation process, collecting the
prerequisites and side-stepping the compilation phase arms race.
mysql2_chef_gem is a library cookbook that provides a resource for installing the mysql2 gem against either mysql or mariadb depending on usage.
Scope
-----
This cookbook is concerned with the installation of the `mysql2`
Rubygem into Chef's gem path. Installation into other Ruby
environments, or installation of related gems such as `mysql` are
outside the scope of this cookbook.
## Scope
Requirements
------------
* Chef 11 or higher
* Ruby 1.9 (preferably from the Chef full-stack installer)
This cookbook is concerned with the installation of the `mysql2` Rubygem into Chef's gem path. Installation into other Ruby environments, or installation of related gems such as `mysql` are outside the scope of this cookbook.
Platform Support
----------------
The following platforms have been tested with Test Kitchen and are
known to work.
## Requirements
- Chef 12.5+
## Platform Support
The following platforms have been tested with Test Kitchen and are known to work.
```
|---------------------------------------+-----+-----+-----+-----+-----|
@@ -35,27 +26,24 @@ known to work.
|---------------------------------------+-----+-----+-----+-----+-----|
| Mysql2ChefGem::Mysql / centos-7 | | | X | X | X |
|---------------------------------------+-----+-----+-----+-----+-----|
| Mysql2ChefGem::Mysql / fedora-20 | | | X | X | X |
| Mysql2ChefGem::Mysql / fedora | | | X | X | X |
|---------------------------------------+-----+-----+-----+-----+-----|
| Mysql2ChefGem::Mysql / debian-7 | | | X | | |
|---------------------------------------+-----+-----+-----+-----+-----|
| Mysql2ChefGem::Mysql / ubuntu-10.04 | | X | | | |
|---------------------------------------+-----+-----+-----+-----+-----|
| Mysql2ChefGem::Mysql / ubuntu-12.04 | | | X | | |
|---------------------------------------+-----+-----+-----+-----+-----|
| Mysql2ChefGem::Mysql / ubuntu-14.04 | | | X | X | |
|---------------------------------------+-----+-----+-----+-----+-----|
| Mysql2ChefGem::Mariadb / fedora-20 | | | X | | |
| Mysql2ChefGem::Mariadb / fedora | | | X | | |
|---------------------------------------+-----+-----+-----+-----+-----|
| Mysql2ChefGem::Mariadb / ubuntu-14.04 | | | X | | |
|---------------------------------------+-----+-----+-----+-----+-----|
```
Usage
-----
## Usage
Place a dependency on the mysql cookbook in your cookbook's metadata.rb
```ruby
depends 'mysql2_chef_gem', '~> 1.0'
depends 'mysql2_chef_gem'
```
Then, in a recipe:
@@ -66,43 +54,61 @@ mysql2_chef_gem 'default' do
end
```
Resources Overview
------------------
### 2.0 Compatibility
In order to ensure compatibility with Chef 13, the 2.0 release of this cookbook changed the method used to specify installation against mariadb. Instead of specifying the underlying provider, you instead reference the mariadb specific resource. See the example below for the new syntax.
## Resources Overview
### mysql2_chef_gem
The `mysql2_chef_gem` resource the build dependencies and installation
of the `mysql2` rubygem into Chef's Ruby environment
The `mysql2_chef_gem` resource installs mysql client development dependencies and installs the `mysql2` rubygem into Chef's Ruby environment.
#### Example
```ruby
mysql2_chef_gem 'default' do
gem_version '0.3.17'
gem_version '0.4.5'
action :install
end
```
#### Parameters
- `gem_version` - The version of the `mysql` Rubygem to install into
the Chef environment. Defaults to '0.3.17'
connector libraries
- `client_version` - The version of the mysql client libraries to
install and link against
#### Properties
- `gem_version` - The version of the `mysql` Rubygem to install into the Chef environment. Defaults to '0.4.5' connector libraries
- `package_version` - The version of the mysql client libraries to install and link against
#### Actions
- `:install` - Build and install the gem into the Chef environment
- `:remove` - Delete the gem from the Chef environment
#### Providers
Chef selects a default provider based on platform and version,
but you can specify one if your platform support it.
### mysql2_chef_gem_mariadb
To install the mysql2 gem against an installation of mariadb reference the `mysql2_chef_gem_mariadb` resource directly. This resource includes all the same properties of the standard `mysql2_chef_gem` resource.
```ruby
mysql2_chef_gem 'default' do
provider Chef::Provider::Mysql2ChefGem::Mariadb
mysql2_chef_gem_mariadb 'default' do
action :install
end
```
Authors
-------
- Author:: Sean OMeara (<someara@chef.io>)
- Author:: Nicolas Blanc(<sinfomicien@gmail.com>)
## License & Authors
- Author:: Sean OMeara ([someara@sean.io](mailto:someara@sean.io))
- Author:: Tim Smith ([tsmith@chef.io](mailto:tsmith@chef.io))
- Author:: Nicolas Blanc([sinfomicien@gmail.com](mailto:sinfomicien@gmail.com))
```
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.
```

View File

@@ -1,37 +0,0 @@
class Chef
class Provider
class Mysql2ChefGem
class Mariadb < Chef::Provider::LWRPBase
use_inline_resources if defined?(use_inline_resources)
def whyrun_supported?
true
end
action :install do
recipe_eval do
run_context.include_recipe 'build-essential::default'
end
# As a recipe: must rely on global node attributes
recipe_eval do
run_context.include_recipe 'mariadb::client'
end
gem_package 'mysql2' do
gem_binary RbConfig::CONFIG['bindir'] + '/gem'
version new_resource.gem_version
action :install
end
end
action :remove do
gem_package 'mysql2' do
gem_binary RbConfig::CONFIG['bindir'] + '/gem'
action :remove
end
end
end
end
end
end

View File

@@ -1,37 +0,0 @@
class Chef
class Provider
class Mysql2ChefGem
class Mysql < Chef::Provider::LWRPBase
include Chef::DSL::IncludeRecipe
use_inline_resources if defined?(use_inline_resources)
def whyrun_supported?
true
end
action :install do
include_recipe 'build-essential::default'
# As a resource: can pass version from calling recipe
mysql_client 'default' do
version new_resource.client_version
action :create
end
gem_package 'mysql2' do
gem_binary RbConfig::CONFIG['bindir'] + '/gem'
version new_resource.gem_version
action :install
end
end
action :remove do
gem_package 'mysql2' do
gem_binary RbConfig::CONFIG['bindir'] + '/gem'
action :remove
end
end
end
end
end
end

View File

@@ -1,15 +0,0 @@
require 'chef/resource/lwrp_base'
class Chef
class Resource
class Mysql2ChefGem < Chef::Resource::LWRPBase
self.resource_name = :mysql2_chef_gem
actions :install, :remove
default_action :install
attribute :mysql2_chef_gem_name, kind_of: String, name_attribute: true, required: true
attribute :gem_version, kind_of: String, default: '0.3.17'
attribute :client_version, kind_of: String, default: nil
end
end
end

View File

@@ -1,17 +0,0 @@
#########
# mysql2_chef_gem
#########
Chef::Platform.set platform: :amazon, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
Chef::Platform.set platform: :centos, version: '< 7.0', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
Chef::Platform.set platform: :centos, version: '>= 7.0', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
Chef::Platform.set platform: :debian, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
Chef::Platform.set platform: :fedora, version: '< 19', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
Chef::Platform.set platform: :fedora, version: '>= 19', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
Chef::Platform.set platform: :omnios, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
Chef::Platform.set platform: :redhat, version: '< 7.0', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
Chef::Platform.set platform: :redhat, version: '>= 7.0', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
Chef::Platform.set platform: :scientific, version: '< 7.0', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
Chef::Platform.set platform: :scientific, version: '>= 7.0', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
Chef::Platform.set platform: :smartos, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
Chef::Platform.set platform: :suse, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
Chef::Platform.set platform: :ubuntu, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,29 @@
property :mysql2_chef_gem_name, String, name_attribute: true, required: true
property :gem_version, String, default: '0.4.5'
property :package_version, String
provides :mysql2_chef_gem_mariadb
action :install do
recipe_eval do
run_context.include_recipe 'build-essential::default'
end
# As a recipe: must rely on global node attributes
recipe_eval do
run_context.include_recipe 'mariadb::client'
end
gem_package 'mysql2' do
gem_binary RbConfig::CONFIG['bindir'] + '/gem'
version new_resource.gem_version
action :install
end
end
action :remove do
gem_package 'mysql2' do
gem_binary RbConfig::CONFIG['bindir'] + '/gem'
action :remove
end
end

View File

@@ -0,0 +1,29 @@
property :mysql2_chef_gem_name, String, name_attribute: true, required: true
property :gem_version, String, default: '0.4.5'
property :package_version, String
provides :mysql2_chef_gem
provides :mysql2_chef_gem_mysql
action :install do
include_recipe 'build-essential::default'
# As a resource: can pass version from calling recipe
mysql_client 'default' do
version new_resource.package_version if new_resource.package_version
action :create
end
gem_package 'mysql2' do
gem_binary RbConfig::CONFIG['bindir'] + '/gem'
version new_resource.gem_version
action :install
end
end
action :remove do
gem_package 'mysql2' do
gem_binary RbConfig::CONFIG['bindir'] + '/gem'
action :remove
end
end