Giter Club home page Giter Club logo

rundeck's Introduction

Rundeck Cookbook

Cookbook Version Build Status OpenCollective OpenCollective License

Installs and configures Rundeck with an optional Apache reverse proxy. The cookbook has optional support for Active Directory and LDAP.

Maintainers

This cookbook is maintained by the Sous Chefs. The Sous Chefs are a community of Chef cookbook maintainers working together to maintain important cookbooks. If you’d like to know more please visit sous-chefs.org or come chat with us on the Chef Community Slack in #sous-chefs.

Supported Chef Versions

  • Chef 13
  • Chef 14

Supported OS Versions

The following platforms and versions are tested and supported using test-kitchen

  • Ubuntu 16.04 / 18.04
  • Debian 9
  • CentOS 7

Resources

Contributors

This project exists thanks to all the people who contribute.

Backers

Thank you to all our backers!

https://opencollective.com/sous-chefs#backers

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website.

https://opencollective.com/sous-chefs/sponsor/0/website https://opencollective.com/sous-chefs/sponsor/1/website https://opencollective.com/sous-chefs/sponsor/2/website https://opencollective.com/sous-chefs/sponsor/3/website https://opencollective.com/sous-chefs/sponsor/4/website https://opencollective.com/sous-chefs/sponsor/5/website https://opencollective.com/sous-chefs/sponsor/6/website https://opencollective.com/sous-chefs/sponsor/7/website https://opencollective.com/sous-chefs/sponsor/8/website https://opencollective.com/sous-chefs/sponsor/9/website

rundeck's People

Contributors

arentz07 avatar atheiman avatar brothernumsy avatar damacus avatar darkfibre avatar drewsonne avatar edwlarkey avatar engm avatar ev0ldave avatar gsreynolds avatar kitchen-porter avatar madhusivakumar avatar makarenkod avatar mattmencel avatar mattray avatar mengesb avatar noxgg avatar pcross616 avatar powerschill avatar ramereth avatar renovate[bot] avatar roberttowne avatar ronabop avatar sjmio avatar spion06 avatar stefanwb avatar tas50 avatar tobymosby avatar xorima avatar xorimabot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rundeck's Issues

Is ACLPolicies data bag really required?

Hi, I'm trying to use this cookbook to deploy a rundeck environment. I just want A default ACL policy but it seems the code it's expecting me to configure at least one policy using the data bag.

There is no example in the documentation. Could someone help me with that? An example or a way to run the code without having to configure this?

yum install broke in version 3.0.1 of cookbook

In the fix to correct an issue with the web.xml file that changed in Rundeck 2.6.10, the default attribute for ['rundeck']['rpm']['version'] was changed to include "rundeck-" in a non-passive manner. This breaks the yum package resource in recipe::server_install that uses that same attribute for the version to install.

move duplicated databag code to library

this code is duplicated everywhere, it would be nice to move it out to a method provided by a module in a library.

if node['rundeck']['secret_file'].nil?
  rundeck_secure = data_bag_item(node['rundeck']['rundeck_databag'], node['rundeck']['rundeck_databag_secure'])
else
  rundeck_secret = Chef::EncryptedDataBagItem.load_secret(node['rundeck']['secret_file'])
  rundeck_secure = Chef::EncryptedDataBagItem.load(node['rundeck']['rundeck_databag'], node['rundeck']['rundeck_databag_secure'], rundeck_secret)
end

chef-rundeck fails on Ubuntu

Because of something weird with how the job is setup with runit, it errors when building the XML response.

When i run the command manually with it disabled in runit, it works ok.

[2016-03-16T18:09:56+00:00] ERROR: === could not generate xml for {"name"=>"foo.bar", "chef_environment"=>"production", "run_list"=>role[base], "recipes"=>[], "roles"=>["base"], "fqdn"=>"foo.bar", "hostname"=>"foo.bar", "kernel_machine"=>"x86_64", "kernel_os"=>"GNU/Linux", "platform"=>"ubuntu", "platform_version"=>"14.04", "tags"=>["statsd"]}:  undefined method `unpack' for nil:NilClass
[2016-03-16T18:09:56+00:00] DEBUG: /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/mixin/xml_escape.rb:109:in `rescue in xml_escape'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/mixin/xml_escape.rb:106:in `xml_escape'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-rundeck-2.2.0/lib/chef-rundeck.rb:188:in `build_node'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-rundeck-2.2.0/lib/chef-rundeck.rb:152:in `block in build_project'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-rundeck-2.2.0/lib/chef-rundeck.rb:140:in `each'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-rundeck-2.2.0/lib/chef-rundeck.rb:140:in `build_project'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-rundeck-2.2.0/lib/chef-rundeck.rb:82:in `block in configure'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1611:in `call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1611:in `block in compile!'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:in `[]'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:in `block (3 levels) in route!'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:994:in `route_eval'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:in `block (2 levels) in route!'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1015:in `block in process_route'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013:in `catch'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013:in `process_route'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:973:in `block in route!'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:972:in `each'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:972:in `route!'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1085:in `block in dispatch!'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in `block in invoke'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in `catch'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in `invoke'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1082:in `dispatch!'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:in `block in call!'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in `block in invoke'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in `catch'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in `invoke'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:in `call!'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:895:in `call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/nulllogger.rb:9:in `call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/head.rb:11:in `call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:182:in `call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:2013:in `call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487:in `block in call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1787:in `synchronize'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487:in `call'\n/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/handler/webrick.rb:60:in `service'\n/opt/chef/embedded/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'\n/opt/chef/embedded/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'\n/opt/chef/embedded/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
[2016-03-16T18:09:56+00:00] INFO: nodes complete (project: 'default', total: 396, failed: 0)
[2016-03-16T18:09:56+00:00] DEBUG: #<File:/tmp/chef-rundeck-default.xml>

Recipe Compile Error in /var/chef/cache/cookbooks/rundeck/recipes/chef-rundeck.rb

I get the following error when using the chef-rundeck recipe.

The error seems to be a call to run_restart inside the runit_service lwrp. Looking at the runit docs, I can not find anything mentioning run_restart. Is this line an error?

================================================================================
Recipe Compile Error in /var/chef/cache/cookbooks/rundeck/recipes/chef-rundeck.rb
================================================================================


NoMethodError
-------------
undefined method `run_restart' for Chef::Resource::RunitService


Cookbook Trace:
---------------
  /var/chef/cache/cookbooks/rundeck/recipes/chef-rundeck.rb:79:in `block in from_file'
  /var/chef/cache/cookbooks/rundeck/recipes/chef-rundeck.rb:78:in `from_file'


Relevant File Content:
----------------------
/var/chef/cache/cookbooks/rundeck/recipes/chef-rundeck.rb:

 72:    content rundeck_secure['chef_rundeck_pem']
 73:    owner node['rundeck']['user']
 74:    group node['rundeck']['user']
 75:    mode 0400
 76:  end
 77:
 78:  runit_service "chef-rundeck" do
 79>>   run_restart false
 80:    options(
 81:      :user => node['rundeck']['user'],
 82:      :chef_config => node['rundeck']['chef_config'],
 83:      :chef_webui_url => node['rundeck']['chef_webui_url'],
 84:      :project_config => node['rundeck']['project_config'],
 85:      :chef_rundeck_host => node['rundeck']['chef_rundeck_host'],
 86:      :chef_rundeck_port => node['rundeck']['chef_rundeck_port'],
 87:      :chef_rundeck_partial_search => node['rundeck']['chef_rundeck_partial_search']
 88:    )

Support landing entries in key storage

Overview

In order to aid consumers in setting up Rundeck and disaster recovery scenarios, we should support adding key storage entries through the chef-client run.

Design Considerations

Key storage may be in a remote database or on the local filesystem. Thus, we should be attempting to leverage the abstractions Rundeck has in place to interact with keys - the CLI and/or the REST API.

We would likely want to represent these via encrypted data bag items, which should have the following attributes:

  • name (the name of the key)
  • path (the path at which the key is stored)
  • contents (the actual secret key we are trying to store)
  • type (indicates if this is a private key, public key, or password)

We might also add a LWRP for a 'key' with similar attributes.

I don't want to use apache reverse proxy

Hi,

Presently the cookbook will install apache2 by default and configure it to be used as reverse proxy. What if I don't want to use apache and use some other stuff instead. I think we could make this configurable like whether to use reverse proxy or not. I can do the changes and create a PR. But before doing that just wanted to share it with you @pcross616

Thanks & Regards
Nilanjan

Remote database url support?

From the rundeck docs here
We can see that rundeck supports specifying an external db source url as seen in this snippet of code:

dataSource.url = jdbc:oracle:thin:@localhost:1521:XE
dataSource.driverClassName = oracle.jdbc.driver.OracleDriver
dataSource.username = dbuser
dataSource.password = dbpass
dataSource.dialect = org.hibernate.dialect.Oracle10gDialect

This is how I setup the code:

# External Database properties
default['rundeck']['rdbms']['enable'] = 'true'
default['rundeck']['rdbms']['type'] = 'oracle'
default['rundeck']['rdbms']['location'] = 'xxx.xxx.xxx.xxx'
default['rundeck']['rdbms']['dbname'] = 'dbname'
default['rundeck']['rdbms']['dbuser'] = 'user'
default['rundeck']['rdbms']['dbpassword'] = 'password'
default['rundeck']['rdbms']['dialect'] = 'Oracle10gDialect'
default['rundeck']['rdbms']['port'] = 'xxxx'

When I check the file /etc/rundeck/rundeck-config.properties it looks like most of the settings are there except for one

dataSource.url = jdbc:oracle:thin:@:xxx.xxx.xxx.xxx:PORT:XE
dataSource.driverClassName = oracle.jdbc.driver.OracleDriver
dataSource.dialect = org.hibernate.dialect.Oracle10gDialect
dataSource.dbCreate=update
dataSource.username =user
dataSource.password =password

I need to have the XE part at the end changed, but it seems to always attach that no matter what I do and the docs make no mention of how that would be changed.

Release v2.0.7?

Am I missing something or should there be a v2.0.7 release? I see version 2.0.7 on the SuperMarket (https://supermarket.chef.io/cookbooks/rundeck) but no version that matches in GitHub.

Master is very close but there are differences (installation of slack plugin, variable data bag name).

Can't update to new version of rundeck

I'm trying to install rundeck-2.4.2-1-GA.deb. I override the override['rundeck']['deb']['package'] = 'rundeck-2.4.2-1-GA.deb' & override['rundeck']['checksum'] = 'd2038440542b64921449e4ea0d7899f723bb29a58d713532fb8a0ab434ddac89'.

When i run the cookbook, i get

================================================================================
Error executing action install on resource 'apt_package[http://download.rundeck.org/deb/rundeck-2.4.2-1-GA.deb]'
================================================================================

       Chef::Exceptions::Package
       -------------------------
   dpkg failed - #<Process::Status: pid 27164 exit 2>!

If rdbms data bag not present, cookbook errors out

When using node attributes for rdbms, the cookbook fails out saying "404 not found" as it is trying to load a data bag which does not exist. We should still use the node attributes if the data bag doesn't exist.

Hard coded data bag

Hard coded data bag names in recipes is not suitable while working with multiple environments. We are forced to use same data bag in all environments.

Cookbook is not working with rundeck version 2.5

It seems that since the upgrade to version 2.5 of rundeck and the upgrade of grails to 2.4.4 together with this version there are problems that cause the server to fail after running chef.

  1. in order for the rundeckd service to start without failing I had to comment out the following parts in "/var/lib/rundeck/exp/webapp/WEB-INF/web.xml":

    <filter>
            <filter-name>sitemesh</filter-name>
            <filter-class>org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter</filter-class>
    </filter>
    
    <filter-mapping>
            <filter-name>sitemesh</filter-name>
            <url-pattern>/*</url-pattern>
            <dispatcher>REQUEST</dispatcher>
            <dispatcher>ERROR</dispatcher>
    </filter-mapping>
    
  2. After it starts the webserver is unable to retrieve any images and static files - I see the project and the I am able to login but it is all HTML text.

Can you suggest what is needed in order to make it work with the latest version?

Include runit

I'm using 2.0.0 of this cookbook and get the following error

================================================================================       
Error executing action `enable` on resource 'runit_service[rundeck]'       
================================================================================       


RuntimeError       
------------       
Could not locate main runit sv_bin at "/usr/bin/sv". Did you remember to install runit before declaring a "runit_service" resource?        

Try adding the following to the top of your recipe:       

include_recipe "runit"       

I've worked around it by adding include_recipe 'runit' at the top of my cookbook but this recipe should include it if it depends on it.

rundeck cookbook depends on rundeck cookbook

metadata.rb currently contains:

depends "rundeck"

This leads Berkshelf to complain with:

/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/semverse-1.1.0/lib/semverse/version.rb:78: stack level too deep (SystemStackError)

Is there a reason for this inclusion or can it be removed as part of the next release?

Support data bag for RDBMS

In order to support encryption of DB user name and password, we should support using a data bag to store this config.

Default rdbms enabled set to string value 'false'

By default, ['rundeck']['rdbms']['enable'] is set to the string value of 'false', which is true [1].

In the configuration template, to enable rdbms it is checking for the string value of 'true' [2], and to disable rdbms it is checking for the boolean value of false [3]. So, this portion never gets written to the config file. The default rundeck dataSource [4] is used, which is why this kind of works.

There is no real reason to rely on the string value of 'true' and 'false'.

[1] https://github.com/Webtrends/rundeck/blob/master/attributes/default.rb#L100
[2] https://github.com/Webtrends/rundeck/blob/master/templates/default/rundeck-config.properties.erb#L7
[3] https://github.com/Webtrends/rundeck/blob/master/templates/default/rundeck-config.properties.erb#L21
[4] http://rundeck.org/docs/administration/setting-up-an-rdb-datasource.html#customize-the-datasource

Support creation of .aclpolicy files

Overview

This cookbook supports configuring different user groups, via adding them to your login configuration (i.e. jaas-loginmodule.conf). However, roles added here are practically unusable unless an associated .aclpolicy file is added. As a developer who is building out Rundeck using this cookbook, I would like to be able to Chef-ify the process of assigning access control on Rundeck.

Design

The access control files have a structure that maps well to a Hash. We should attempt to replicate this structure with a template.
UPDATE: This will be done using an "aclpolicies.json" data bag item which will contain the different acl policies.

Ref: http://rundeck.org/docs/administration/access-control-policy.html

Create proper kitchen test suites for cookbook

We should test for some of the major conditions of state we want to assert when converging the cookbook. Currently we're just testing if it's successful, but we should be doing more fine-grained assertions.

chef-rundeck reinstalls Chef onto system Ruby

When the chef-rundeck gem is installed, it pulls in the chef gem as a dependency, causing Chef to be installed into the system Ruby and installed into /usr/local/bin. This pathing causes it to be the default version of chef-client, ohai, etc. in most cases; that, in turn, causes unpredictable behavior at best and completely breaks Chef at worst.

Installing the chef-rundeck gem using the chef_gem resource instead of gem_package will cause it to be installed into whatever Ruby is currently used for Chef, preventing multiple Chefs from being installed on the system.

update projects from data bag items

currently the cookbook will only create new projects from data bags, but wont update existing project config via chef-client. add support for updating config of existing projects via chef-client.

this probably would be covered by a project lwrp #24

chef-rundeck doesn't working - check_version_conflict

When I execute the command in my ktichen machine:

# /opt/chef/embedded/bin/ruby /opt/chef/embedded/bin/chef-rundeck -c /etc/chef/rundeck.rb -f /etc/chef/chef-rundeck.json -w https://chefserver.system73.com/organizations/system73 -o 0.0.0.0 -p 9980 -t 10

**/opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/specification.rb:2278:in check_version_conflict': can't activate rack-2.0.1, already activated rack-1.6.4 (Gem::LoadError)** from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/specification.rb:1404:in activate'
from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems.rb:239:inblock in finish_resolve' from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems.rb:238:in each'
from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems.rb:238:infinish_resolve' from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/rdoc.rb:15:in <top (required)>'
from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:inrequire' from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in require'
from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/uninstaller.rb:11:in<top (required)>' from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in require'
from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:inrequire' from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/provider/package/rubygems.rb:37:in <top (required)>'
from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:inrequire' from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in require'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/providers.rb:80:in<top (required)>' from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in require'
from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:inrequire' from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef.rb:25:in <top (required)>'
from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:inrequire' from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in require'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-rundeck-2.2.0/lib/chef-rundeck.rb:18:in<top (required)>' from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in require'
from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:inrequire' from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-rundeck-2.2.0/bin/chef-rundeck:21:in <top (required)>'
from /opt/chef/embedded/bin/chef-rundeck:22:inload' from /opt/chef/embedded/bin/chef-rundeck:22:in

'

I can see the gems in the machine:

ls **/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/**
addressable-2.4.0        erubis-2.7.0                 multi_json-1.12.1           rack-1.6.4
appbundler-0.9.0         ffi-1.9.14                   net-scp-1.2.1               rack-2.0.1
....

Repo size

The current repo size is ~270mb due to a number of binary files in the repo (debs/msi's etc)

Would it be possible to remove these from the history, and pull down the respective installer files via repos or a mirror?

Rundeck cookbook does not depend on yum cookbook. Errors occur in test kitchen

This is being run in Test Kitchen against a CentOS 6.7 guest.

-----> Starting Kitchen (v1.4.2)
-----> Converging <server-centos-67-vbox>...
       Preparing files for transfer
       Preparing dna.json
       Resolving cookbook dependencies with Berkshelf 4.0.1...
       Removing non-cookbook files before transfer
       Preparing data_bags
       Preparing secret
       Preparing validation.pem
       Preparing client.rb
-----> Chef Omnibus installation detected (install only if missing)
       Transferring files to <server-centos-67-vbox>
       Starting Chef Client, version 12.7.2
       resolving cookbooks for run list: ["rundeck::server"]
       Synchronizing Cookbooks:
         - sudo (2.9.0)
         - java (1.39.0)
         - packagecloud (0.1.1)
         - runit (1.7.6)
         - apache2 (3.1.0)
         - apt (2.9.2)
         - rundeck (2.0.12)
       Compiling Cookbooks...

       ================================================================================
       Recipe Compile Error in /tmp/kitchen/cache/cookbooks/rundeck/recipes/server.rb
       ================================================================================

       NoMethodError
       -------------
       No resource or method named `yum_repository' for `Chef::Recipe "server_install"'

       Cookbook Trace:
       ---------------
         /tmp/kitchen/cache/cookbooks/rundeck/recipes/server_install.rb:33:in `from_file'
         /tmp/kitchen/cache/cookbooks/rundeck/recipes/server.rb:21:in `from_file'

       Relevant File Content:
       ----------------------
       /tmp/kitchen/cache/cookbooks/rundeck/recipes/server_install.rb:

        26:    rundeck_secret = Chef::EncryptedDataBagItem.load_secret(node['rundeck']['secret_file'])
        27:    rundeck_secure = Chef::EncryptedDataBagItem.load(node['rundeck']['rundeck_databag'], node['rundeck']['rundeck_databag_secure'], rundeck_secret)
        28:    rundeck_users = Chef::EncryptedDataBagItem.load(node['rundeck']['rundeck_databag'], node['rundeck']['rundeck_databag_users'], rundeck_secret)
        29:  end
        30:  
        31:  case node['platform_family']
        32:  when 'rhel'
        33>>   yum_repository 'rundeck' do
        34:      description 'Rundeck - Release'
        35:      url 'http://dl.bintray.com/rundeck/rundeck-rpm'
        36:      gpgcheck false
        37:      action :add
        38:    end
        39:  
        40:    package 'rundeck' do
        41:      version node['rundeck']['rpm']['version']
        42:      action :install


       Running handlers:
       [2016-02-16T20:55:16+00:00] ERROR: Running exception handlers
       Running handlers complete
       [2016-02-16T20:55:16+00:00] ERROR: Exception handlers complete
       Chef Client failed. 0 resources updated in 02 seconds
       [2016-02-16T20:55:16+00:00] FATAL: Stacktrace dumped to /tmp/kitchen/cache/chef-stacktrace.out
       [2016-02-16T20:55:16+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
       [2016-02-16T20:55:16+00:00] ERROR: No resource or method named `yum_repository' for `Chef::Recipe "server_install"'
       [2016-02-16T20:55:18+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

Enable rundeck in apache2 and start rundeckd during chef run

I had to perform a couple of additional actions to get rundeck up and running in Vagrant ubuntu 12.04 box. Looks like the cookbook needs to be adjusted so user doesn't need to run those manually.

  1. Provision a Vagrant box
kitchen converge ubuntu 

This worked fine. But http://localhost:8080 was saying there's no websites on that port.
So I had to perform the following actions:

  1. Enable rundeck website in apache2
rm /etc/apache2/sites-enabled/000-default
cd /etc/apache2/sites-enabled && ln -s ../sites-available/rundeck.conf
/etc/init.d/apache2 reload
  1. Start rundeck
/etc/init.d/rundeckd start

Only after doing it you can head to http://localhost:8080 and see rundeck web ui.

Making apache2 and java installation optional

Hi,
We are looking at wrapping this cookbook but do not want apache2 installed and also have a different recipe for installing java. I was wondering I forked your cookbook and made those optional via a couple of attributes if you would be open for a pull request to merge it.
Thanks,

  • Mike

Fix SSL so that CLI works properly, configure offloading SSL to proxy

When you use the CLI is redirects to the grails url, which then has the server show up to Apache as it's IP address instead of 127.0.0.1. We should update the RewriteCond to match our own IP address to allow the CLI to access itself without SSL and the rest of the requests get redirected. Make this optional and controlled through the node ['rundeck']['allow_local_https'] attribute, which defaults to true. This will allow us to use the CLI with SSL for our site and the ability to use the imported SSL certificates if that is desired.

Rundeck 2.6.10 is not starting

The latest version of rundeck does not start because of the web.xml file that has been used in this cookbook. Anyone working on it?

Framework winrm timeout option does not work.

Winrm timeout option, as configured right now in the cookbook template, does not seem to work - my winrm jobs keep failing 60 seconds after not writing to output stream, even though in cookbook-generated framework properties file I have the following config:
framework.winrm-timeout = PT900.000S

The issue seem to be fixed with removing white-spaces before and after the equal sign, making the template like this:
framework.winrm-timeout=<%= @rundeck[:windows][:winrm_timeout] %>

Latest Rundeck Requires Java 7 but Java Cookbook Defaults to 6

Hi there!

First, thanks for this awesome cookbook!

However, Rundeck install is failing for me because it looks for Java 7 (or 8) but your use of the Java cookbook is installing Java 6 by default. For now I have added default[:java][:jdk_version] = '7' to my downstream cookbook, but you should consider adding default[:java][:jdk_version] = '7' to your attributes file.

Thanks,
Cameron

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.