Ansible Playbook: manage_dev_nodes

Purpose

Provision software development environments.

Supported features in the current version:

  • Install development languages:
    • GCC
    • Java
    • NodeJS
    • Python
    • Ruby
  • Install common development tools:
    • make
  • Install and setup IDEs:
    • VSCode
  • Install and setup VCS:
    • GIT
  • Install test/dev environment provisioners:
    • Vagrant

Use Cases

Deploy software development environments

  • Verify that target nodes are registered in the inventory file: dev_nodes.ini
  • Verify that target endstate is set: manage_dev_nodes.yml
  • Run the playbook. Use the -s <SITE> parameter to select the target site.
/opt/aplatform64/bin/ap64.sh -n -p manage_dev_nodes -s <SITE>

Playbook Parameters

Inventory

Register the hosts that will consume the service in the Ansible Inventory file:

  • File: inventories/<SITE>/dev_nodes.ini
  • Host Group: dev_nodes

End State

A dedicated group_vars directory is used to store end-state configuration settings for both the playbook and related Ansible Roles.

Set playbook specific settings in the file: inventories/<SITE>/group_vars/dev_nodes/manage_dev_nodes.yml

dev_nodes_apps:
  gcc:
  git_client:
  java:
  nodejs:
  python:
  ruby:
  tools:
  vagrant:
  vscode:
Parameter Required? Type Default Purpose / Value
dev_nodes_apps yes dictionary Define what applications will be deployed
dev_nodes_apps.gcc no boolean false Deploy the application?
dev_nodes_apps.git_client no boolean false Deploy the application?
dev_nodes_apps.java no boolean false Deploy the application?
dev_nodes_apps.nodejs no boolean false Deploy the application?
dev_nodes_apps.python no boolean false Deploy the application?
dev_nodes_apps.ruby no boolean false Deploy the application?
dev_nodes_apps.tools no boolean true Deploy the application?
dev_nodes_apps.vagrant no boolean false Deploy the application?
dev_nodes_apps.vscode no boolean false Deploy the application?

Additional role specific settings are available to further customize the playbook:

A:Platform64 role group_vars file
serdigital64.application.app_vscode inventories/<SITE>/group_vars/dev_nodes/app_vscode.yml
serdigital64.development.dev_java inventories/<SITE>/group_vars/dev_nodes/dev_java.yml
serdigital64.devops.dops_git_client inventories/<SITE>/group_vars/dev_nodes/dops_git_client.yml
serdigital64.system.sys_repository inventories/<SITE>/group_vars/dev_nodes/sys_repository.yml

Deployment

OS Compatibility

OS compatibility is role dependant. Please refer to the respective role documentation.

Dependencies

Dependencies in this section are automatically solved during the installation of A:Platform64.

  • Ansible Collections:
    • serdigital64.backup
    • serdigital64.system
    • serdigital64.development
    • serdigital64.devops
    • serdigital64.application

Prerequisites

  • Ansible:
    • Control Node: A:Platform64 installed and configured.
    • Managed Nodes: target hosts prepared for A:Platform64 control.

Installation Procedure

The playbook is automatically deployed during the A:Platform64 installation process.

Contributing

Help on implementing new features and maintaining the code base is welcomed.

Please see the guidelines for further details.

Author

License

GPL-3.0-or-later