Download the PHP package indatus/assembler without Composer
On this page you can find all versions of the php package indatus/assembler. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download indatus/assembler
More information about indatus/assembler
Files in indatus/assembler
Package assembler
Short Description Easy construction and packaging of docker containers using simple configuration scripts.
License MIT
Homepage https://github.com/indatus/assembler
Informations about the package assembler
Assembler
Assembler allows you to easily construct and package docker containers using existing config scripts. Currently you can build containers using saltstack only, but there are plans to add the ability to provision using any configuration management tool such as puppet, chef, and ansible.
Requirements
- Docker
- PHP 5.4+
- Salt
Install
Via Composer
Usage
Assembler uses Robo to run tasks on the command line. This allows Assembler to wrap docker
commands, so you will need to have docker installed wherever you run it. There is a vagrant file in the root
of this repo that will bootstrap ubuntu/trusty64
with docker and php5 which will allow you to run assembler.
Additionally you will need to configure an ssh forward agent by:
then append:
then run if you do not already have an id_rsa key:
then just call vagrant up
.
If everything goes according to plan, you should be able to start running assembler.
Terminology
This project extends a metaphor from manufacturing to building and deploying applications. Docker containers are packaged based on settings specified in a product line.
Product Line
A product line is simply a yaml file specifying the raw goods or base services that your product needs to run.
Consider the following example:
The above yaml represents a product line that tells assembler you want a container with mysql that has a root user with a password of password. Additionally it tells assembler where to find those raw goods as suppliers. You will need salt states available for each of the raw goods to be provisioned onto the Docker container.
Stocking
You stock goods by running assembler:stock
and specifying a product line to stock example below:
The above command will find the my_webserver.yml file git clone the raw goods and automatically generate a top.sls file for use by salt
Fabricating
You 'fabricate' containers based on a base image derived from a docker file for example:
The above command will build a base image based on the specified docker file.
Loading
You 'load' containers with the raw goods specified in your production line for example:
The above command will load all of the goods from the specified path. The '/path/to/goods' would be the same path specified by --goods-path in the stock task.
Packaging
You 'package' containers that have been stocked, fabricated, and loaded. For example:
This will commit the specified containerid into a docker image additionally if you specify the --push flag the package command will actually push the committed image to myrepo/name. To push you will need to specify your username, password, and email for the dockerregistry you are pushing to.
Making
The make command will do everything in one fail swoop. For example:
will stock, fabricate, load, and package your containers
Shipping
The ship command will login to a Docker host server via SSH and pull a Docker image and run the container instance.
The above command will login to the server 192.168.1.100
via SSH and execute the following commands as sudo
:
Provisioning
Configuration
You can specify which cloud provider assembler needs to ship the container to via the provisioning.yaml
file. You will keep your public api token for individual providers here, along with any default ssh keys you
like to be installed on the newly provisioned box. There is an example file in the config
directory here,
or you can look at the example below.
userData
key provides a path to a DigitalOcean cloud config
script. This will be executed during your droplet's creation and can be used for provisioning.
Running
You can provision a server on digital ocean using the 'provision' command as below:
The above will use the information in your config file to create a droplet on digital ocean with the specified hostname as 'my_host_name'. A .machine file will be created with the form .machinemyhostname and will contain data about the created machine below is an example
You can destroy the cloud server using the 'destroy' command as below:
Where the value .machinemyhostname is the path to the machine file provisioned before
Testing
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email [email protected], [email protected], or [email protected] instead of using the issue tracker.
License
The MIT License (MIT). Please see License File for more information.
All versions of assembler with dependencies
codegyre/robo Version 0.5.*
symfony/yaml Version ~2.6
toin0u/digitalocean-v2 Version ~1.0
guzzlehttp/guzzle Version ~5.2
symfony/config Version ~2.6