Skip to content
This repository was archived by the owner on Dec 14, 2021. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 8 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
Parrot development VM
=====================
Parrot development VM - Agile Collective version
================================================

Parrot is a utility VM for Drupal development. It's not your development environment,
but it's the complex, hard to set up, servers you'll need.

Parrot is a utility VM for Drupal development. It's not your development environment, but it's the complex, hard to set up, servers you'll need.

This is the Agile Collective development version that installs Drush, Compass and libsass. The master branch of this repo tracks the Computerminds Parrot master branch while the develop branch contains the extra Agile Collective stuff.

The Agile Collective stuff requires the latest version of Puppet. This is installed automatically, but if you are upgrading from Computerminds Parrot you must delete the /var/.parrot-bootstrapped file from inside the box. If you don't the installation will fail with Puppet errors.


Name
Expand Down
6 changes: 5 additions & 1 deletion Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ def parse_config(
'varnish_enabled' => false,
'local_user_uid' => Process.uid,
'local_user_gid' => Process.gid,
'drush_installed' => false,
'drush_branch' => '6.x',
'forward_solr' => true,
'forward_mysql' => true,
'forward_varnish' => true,
Expand Down Expand Up @@ -129,7 +131,7 @@ Vagrant.configure('2') do |config|
# folder, and the third is the path on the host to the actual folder.
config.vm.synced_folder "parrot-config", "/vagrant_parrot_config"

config.vm.synced_folder custom_config['sites'], "/vagrant_sites", :nfs => true
config.vm.synced_folder custom_config['sites'], "/vagrant_sites", :nfs => true, :mount_options => ['actimeo=2']
config.vm.synced_folder custom_config['databases'], "/vagrant_databases"


Expand Down Expand Up @@ -158,6 +160,8 @@ Vagrant.configure('2') do |config|
"parrot_varnish_enabled" => custom_config['varnish_enabled'],
"vagrant_host_user_uid" => custom_config['local_user_uid'],
"vagrant_host_user_gid" => custom_config['local_user_gid'],
"parrot_drush_installed" => custom_config['drush_installed'],
"parrot_drush_branch" => custom_config['drush_branch'],
}
end
end
31 changes: 29 additions & 2 deletions manifests/parrot.pp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
node default {

class {apt: }
class { apt: }
class { parrot_repos: }
class { solr_server: }
class { parrot_mysql: }
Expand All @@ -27,6 +27,33 @@
autoupdate => true,
}


# Install nodejs and associated node packages
class { 'nodejs':
repo_url_suffix => 'node_0.12',
}
package { 'bower':
ensure => present,
provider => 'npm',
require => Class['nodejs'],
}
package { 'gulp':
ensure => present,
provider => 'npm',
require => Class['nodejs'],
}
package { 'grunt-cli':
ensure => present,
provider => 'npm',
require => Class['nodejs'],
}

# Optionally install drush
case $parrot_drush_installed {
'true', true: {
class {'drush':
drush_branch => $parrot_drush_branch,
}
}
}

}
10 changes: 5 additions & 5 deletions modules/apt/templates/pin.pref.erb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# <%= name %>
Explanation: <%= explanation %>
Package: <%= packages %>
Pin: <%= pin %>
Pin-Priority: <%= priority %>
# <%= @name %>
Explanation: <%= @explanation %>
Package: <%= @packages %>
Pin: <%= @pin %>
Pin-Priority: <%= @priority %>
8 changes: 4 additions & 4 deletions modules/apt/templates/source.list.erb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# <%= name %>
deb <%= location %> <%= release_real %> <%= repos %>
<%- if include_src then -%>
deb-src <%= location %> <%= release_real %> <%= repos %>
# <%= @name %>
deb <%= @location %> <%= @release_real %> <%= @repos %>
<%- if @include_src then -%>
deb-src <%= @location %> <%= @release_real %> <%= @repos %>
<%- end -%>
78 changes: 78 additions & 0 deletions modules/drush/manifests/init.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
class drush (
$drush_branch = '6.x',
$git_repo = 'https://github.com/drush-ops/drush.git'
) {

include parrot_php::composer

# Check that git is installed.
if ! defined(Package['git']) {
package { 'git':
ensure => present,
before => Exec['clone_drush'],
}
}

case $drush_branch {
# 6.x branch, fine for most Drupal 7 uses.
'6.x': {
exec { 'clone_drush':
path => "/bin:/usr/bin",
cwd => "/opt",
command => "git clone -b $drush_branch $git_repo",
creates => "/opt/drush",
require => [Package["git-core"]],
}

# Complete Drush install
# Run once to download console table etc.
exec { "drush_first_run":
command => "/opt/drush/drush",
require => Exec['clone_drush'],
}

}
# 7.x branch, required for Drupal 8
'7.x', default: {
exec { 'clone_drush':
path => "/bin:/usr/bin",
cwd => "/opt",
command => "git clone -b $drush_branch $git_repo",
creates => "/opt/drush",
require => [Class['parrot_php::composer'], Package["git-core"]],
notify => Exec['composer_drush_install'],
}

# Complete Drush install by running "composer install" in the Drush directory.
case $parrot_php_version {
'5.3', default: {
exec { 'composer_drush_install':
command => '/usr/local/bin/composer install',
environment => [ "COMPOSER_HOME=/opt/drush" ],
cwd => '/opt/drush',
refreshonly => true,
require => Exec['clone_drush'],
}
}
'5.4', '5.5': {
exec { 'composer_drush_install':
command => '/usr/local/bin/composer install',
environment => [ "COMPOSER_HOME=/opt/drush" ],
cwd => '/opt/drush',
refreshonly => true,
require => [ Exec['clone_drush'], Package["php5-readline"] ],
}
}
}
}
}

# Symlink Drush
file { 'symlink_drush':
ensure => link,
path => '/usr/bin/drush',
target => '/opt/drush/drush',
require => Exec['clone_drush'],
}

}
146 changes: 146 additions & 0 deletions modules/nodejs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
##2015-05-12 0.8.0
###Backwards-incompatible changes
- Puppet versions below 3.4.0 are no longer supported
- Debian Squeeze and Fedora version 18 and below are explicitly no longer
supported
- Parameter naming changes to node_pkg, npm_pkg, dev_pkg, manage_repo,
dev_pkg to approximate equivalents: nodejs_package_name, npm_package_name,
nodejs_dev_package_name, manage_package_repo, nodejs_dev_package_ensure
- RedHat-family operating systems now use the NodeSource repository by default
rather than the Fedora People repositories
- Debian Wheezy now uses the NodeSource repository by default rather than the
Debian Sid repository
- The proxy parameter has been removed. Equivalent functionality can be
obtained by using the nodejs::npm::global_config_entry defined type
- The version parameter has been removed. The approximate equivalent is
nodejs_package_ensure (or nodejs_dev_package_ensure)
- The nodejs::npm defined type title is now an arbitary unique string rather
than 'destination_dir:package'. The same functionality is now done with
the target and package parameters.
- The nodejs::npm version parameter has been removed. The same functionality
can now be performed with the ensure parameter
- Parameter naming changes to install_opt, remove_opt in nodejs::npm to
approximate equivalents install_options and uninstall_options. Both must
now be an array of strings and not strings.

###Summary

This release performs major API changes and defaults to using the NodeSource
repository where possible.

####Features
- Defaults to using the NodeSource repositories where possible, but allows
native packages to be installed when appropriate parameters are set
- Introduces a parameter repo_class, which allows one to use alternative
repositories like EPEL for the Node.js packages
- Adds Windows installation support via Chocolatey
- Adds FreeBSD and OpenBSD installation support
- Adds tag and scope support to the defined type nodejs::npm
- Adds a defined type nodejs::npm::global_config_entry, which allows one to
set and delete global npm config options

####Bugfixes
- Supercedes PRs 99 (MODULES-1075), 97, 96, 94, 93, 85, 82, 80, 79, 51, 69, 66
and 102
- apt: update. pin to version. change key to 40 characters.
- Debian: Handle NodeSource. Improve Repository handling.
- windows: dont use deprecated chocolately module.
- testing: Pin RSpec version.


##2015-01-21 - Release 0.7.1
###Summary

This fixes the incorrect application of https://github.com/puppetlabs/puppetlabs-nodejs/pull/70 so that the code will actually run.

##2015-01-20 - Release 0.7.0
###Summary

This release adds some new features and improvements, including archlinux support and improved ubuntu support.

####Features
- Add max_nesting parameter to npm list json parse
- Replace Chris's PPA with the Nodesource repo
- Parameterize package names
- Add archlinux support
- TravisCI updates

####Bugfixes
- Fix proxy config requiers for Ubunutu
- Fix rspec tests
- Fix typo in README.md

##2014-07-15 - Release 0.6.1
###Summary

This release merely updates metadata.json so the module can be uninstalled and
upgraded via the puppet module command.

##2014-06-18 - Release 0.6.0
###Summary

This release primarily has improved support for Gentoo and testing
improvements.

####Features
- Improved Gentoo support.
- Test updates

##2014-03-20 - Release 0.5.0
###Summary

This release is just a wrap up of a number of submitted PRs, mostly around
improvements to operating system support, as well as some improvements to
handling npm.

####Features
- Update travis to test more recent versions of Puppet.
- Changed package name for Amazon Linux.
- Add support for Scientific Linux.

####Bugfixes
- Ubuntu uses uppercase for the operatingsystem fact.
- Ignore exit codes from "npm list --json" as they can be misleading, and instead just parse the JSON.
- Set $HOME for npm commands.
- Don't include development version accidently.
- Fix for chrislea ppa that already installs npm.

##2013-08-29 - Release 0.4.0
###Summary

This release removes the precise special handling
and adds the ability to pass in $version.

####Features
- Precise uses the same ppa as every other release.
- New parameters in nodejs:
- `version`: Set the version to install.

##2013-08-01 - Release 0.3.0
###Summary

The focus of this release is ensuring the module
still works on newer distributions.

####Features
- New parameters in nodejs:
- `manage_repo`: Enable/Disable repo management.

####Bugfixes
- Fixed npm on Ubuntuwhen using Chris Lea's PPA
- Make RHEL6 variants the default.
- Fix yumrepo file ordering.

##0.2.1 2012-12-28 Puppet Labs <info@puppetlabs.com>
- Updated EL RPM repositories

##0.2.0 2012-05-22 Puppet Labs <info@puppetlabs.com>
- Add RedHat family support
- Use npm package instead of exec script.
- Remove ppa repo for Ubuntu Precise.

##0.1.1 2012-05-04 Puppet Labs <info@puppetlabs.com>
- Use include for apt class and add spec tests.

##0.1.0 2012-04-30 Puppet Labs <info@puppetlabs.com>
- Initial module release.
Loading