Pre-release
Pre-release

@tiurikov tiurikov released this Jul 31, 2018 · 8 commits to master since this release

Assets 3

This release contains several improvements and new features. Some features might be incompatible with the previous releases. Please check the release notes below.

1. 16 bytes key length for AES/GCM/PKCS5Padding

We decided to reduce the encryption key size from 32 to 16 bytes for better cross platform compatibility. We noticed some issues (e.g. invalid key length) with encryption on MacOS platform. To reencrypt your files please decrypt the files with Infrastructor 0.2.0 first and then encrypt them with 0.2.1.

2. Sudo password support

Now it is possible to specify a sudo password for the most of the actions (shell, upload, template, etc.).

shell user: 'root', sudopass: 'mysudopasshere', command: "apt get update"

Please the action reference for more details.

3. SSH private key file passphrase support

Some keyfiles might require a passphrase before SSH authentication. Now Infrastructor supports this case for InlineInventory:

def ssh_keyfile_pass = input message: 'SSH keyfile passphrase: ", secret: true

inlineInventory {
  node {
    host = 'myservice'
    port = 22
    keyfile = 'devops.pem'
    keypass = ssh_keyfile_pass
  }
}.provision { ... }

Support for AwsInventory are planned to be added in the next release.

@tiurikov tiurikov released this Jun 26, 2018 · 42 commits to master since this release

Assets 3

Release 0.2.0

This release contains several improvements and new features. Some features might be incompatible with the previous releases.

1. Better encryption with AES/GCM/PKCS5Padding

In order to make encryption stronger AES/GCM/PKCS5Padding algorithm has been introduced to replace the weaker AES. Both FULL and PART modes have been updated. If you are planning to migrate to Infrastructor 0.2.0 please decrypt all your files using 0.1.9 and then encrypt them with 0.2.0. There is no backward compatibility, so version 0.2.0 can't process files encrypted with 0.1.9 or older.

There is one more feature implemented in the same context: fail-safe encryption processing. During encryption process infrastructor will skip already encrypted files to avoid occasional double encryption.

2. Lightweight Task Status Line

New task progress UI for multiple nodes:

task progress ui

3. Explicit inventory and node access

Inventory can be explicitly and implicitly accessed in the provisioning script context:

inlineInventory {
    node id: 'gateway', ...
}.provioning {
    // 'inventory' variable is implicilty available in provisioning context
    def gatewayNode = inventory['gateway']
    info "gateway host: $gatewayNode.host"
}
inlineInventory {
    node id: 'gateway', ...
}.provioning { myInventory ->
    // 'myInventory' variable is explicitly defined in provisioning context
    def gatewayNode = myInventory['gateway']
    info "gateway host: $gatewayNode.host"
}

A similar feature has been implemented for nodes:

inlineInventory {
    node id: 'gateway', ...
}.provision {
    // 'node' variable is implicitly available in provisioning context
    task name: 'setup common packages', actions: {
        info "updating node: $node.host"
    }
}
inlineInventory {
    node id: 'gateway', ...
}.provision {
    // 'currentNode' variable is explicitly defined in task context
    task name: 'setup common packages', actions: { currentNode ->
        info "updating node: $currentNode.host"
    }
}

4. Nodes search and filtering

Inventory now provides several useful method for nodes searching:

access node by ID

inlineInventory {
    node id: 'gateway', ...
}.provision {
    def node = inventory['id']
}

find node by a combination of any attributes

inlineInventory {
    node id: 'gateway', ...
}.provision {
    def node = inventory.find { it.id == 'gateway' }
}

filter nodes by tags

inlineInventory {
    node id: 'gateway', ..., tags: [role: 'front-gateway']
}.provision {
    def nodes = inventory.filter { 'role:front-gateway' }
}

@tiurikov tiurikov released this Jun 10, 2018 · 99 commits to master since this release

Assets 3

This release contains a single major improvement: custom actions registration. More infromation and examples can be found in the documentation

@tiurikov tiurikov released this May 22, 2018 · 129 commits to master since this release

Assets 3

This release is addressed to fix a bug in the new ShellAction implementation. See the commit history for the details.

May 20, 2018
Merge pull request #68 from infrastructor/feature/bump-0.1.7
bump 0.1.7

@tiurikov tiurikov released this Nov 27, 2017 · 143 commits to master since this release

Assets 3

This small release contains a minor improvement for the json function.

@tiurikov tiurikov released this Oct 31, 2017 · 147 commits to master since this release

Assets 3

This release contains several changes:

  1. AWS image recreation support
  2. Internal improvements to increase stability of SSH interaction
  3. 'user' action now creates a user home directory

@tiurikov tiurikov released this Oct 27, 2017 · 164 commits to master since this release

Assets 3

This release focuses on UX improvements:

  1. Reorganization of the logs
  2. A new coloring schema
  3. A new log level: trace (-l 4)

@tiurikov tiurikov released this Oct 17, 2017 · 172 commits to master since this release

Assets 3

A few minor bugs have been fixed and improvements have been applied.
No new features in this release.

@tiurikov tiurikov released this Oct 13, 2017 · 178 commits to master since this release

Assets 3

This release contains various bug fixes and improvements:

  1. Add meaningful application exit codes
  2. Folder upload support
  3. Multi line shell execution has been fixed
  4. Task progress status logger UX improvements