LionAdmin
TODO: Write a gem description
Installation
Add this line to your application's Gemfile:
gem 'LionAdmin'
And then execute:
$ bundle
Or install it yourself as:
$ gem install LionAdmin
To configure your Lion/Mountain Lion server for passwordless ssh-entry run the following commands on the L/ML server:
$ ssh-keygen -t rsa
This will prompt you for a location to save the keys, and a pass-phrase:
Generating public/private rsa key pair.
Enter file in which to save the key (/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in .ssh/id_rsa
Your public key has been saved in .ssh/id_rsa.pub
To configure the webserver to login to the L/ML server using the key you just generated, paste the contents of .ssh/id_rsa.pub to .ssh/authorized_keys on your webserver (in the rails user's directory) Next we want to configure L/ML server to run the serveradmin binary without prompting for a password:
$ sudo su root
$ chmod 640 /etc/sudoers
$ emacs /etc/sudoers
Add the following lines to /etc/sudoers
# run serveradmin without password
RUBY_USER ALL=NOPASSWD: /Applications/Server.app/Contents/ServerRoot/usr/sbin/serveradmin
Where RUBY_USER is the name of the user that is ssh-ing to the server.
Usage
Create a new instance:
lion = LionAdmin::Base.new(user@mountainlion.server.com)
Get list of all services
lion.services
Get the status of a service
lion.status(service)
Get the ful status of a service
lion.fullstatus(service)
Get the settings for a service
lion.settings(service)
Start a service
lion.start_service(service)
Stop a service
lion.stop_service(service)
Run a command
lion.run_command(service,command)
Get running services
lion.get_running_services
Get stopped services
lion.get_stopped_services
Change settings
lion.change_settings(service, preference, new_value)
#PLEASE NOTE: THIS METHOD NEEDS MORE TESTING AND DO NO CHANGE SETTINGS UNLESS YOU ARE ABSOLUTELY SURE THE NEW VALUE WILL WORK
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request