Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

should support for more configuration tools (Ansible, Puppet, Salt, etc) #166

Closed
hoatle opened this issue Nov 30, 2016 · 3 comments
Closed

Comments

@hoatle
Copy link
Member

hoatle commented Nov 30, 2016

https://www.vagrantup.com/docs/provisioning/

@hoatle hoatle added the feature label Nov 30, 2016
@hoatle hoatle added this to the v0.5.0 milestone Nov 30, 2016
@hoatle hoatle assigned hoatle and unassigned hoatle Nov 30, 2016
@hoatle hoatle self-assigned this Jan 20, 2017
@hoatle
Copy link
Member Author

hoatle commented Jan 21, 2017

the config should be similar (the same) with https://www.packer.io/docs/templates/provisioners.html

@hoatle
Copy link
Member Author

hoatle commented Jan 21, 2017

this is the sample of the json spec to configure provisioners:

{
  "provisioners": [{
    "type": "file",
    "source": "~/.gitconfig",
    "dest": ".gitconfig"
  },{
    "type": "shell",
    "inline": "echo hello"
  }, {
    "type": "shell",
    "name": "bootstrap",
    "path": "script.sh",
    "run": "always", // "never"
    "preserve_order": true,
    "args": [],
    "env": {

    },
    "binary": null,
    "privileged": true,
    "upload_path": "",
    "keep_color": true,
    "powershell_args": "",
    "powershell_elevated_interactive": false,
    "md5": "",
    "sha1": ""
  }, {
    "type": "ansible",
    //common
    "name": "",
    "playbook": "",
    "config_file": "",
    "extra_vars": {},
    "galaxy_command": "",
    "galaxy_role_file": "",
    "galaxy_roles_path": "",
    "groups": {

    },
    "host_vars": {
      "host1": {
        "http_port": 80,
        "max_requests_per_child": 808
      }
    },
    "inventory_path": "",
    "limit": [],
    "playbook_command": "",
    "raw_arguments": [],
    "skip_tags": [],
    "start_at_task": "",
    "sudo": false,
    "sudo_user": "",
    "tags": [],
    "vault_password_file": "",
    "verbose": false,
    //specific
    "ask_sudo_pass": false,
    "ask_vault_pass": false,
    "force_remote_user": true,
    "host_key_checking": false,
    "raw_ssh_args": []
  }, {
    "type": "ansible_local",
    //common
    "name": "",
    "playbook": "",
    "config_file": "",
    "extra_vars": {},
    "galaxy_command": "",
    "galaxy_role_file": "",
    "galaxy_roles_path": "",
    "groups": {

    },
    "host_vars": {
      "host1": {
        "http_port": 80,
        "max_requests_per_child": 808
      }
    },
    "inventory_path": "",
    "limit": [],
    "playbook_command": "",
    "raw_arguments": [],
    "skip_tags": [],
    "start_at_task": "",
    "sudo": false,
    "sudo_user": "",
    "tags": [],
    "vault_password_file": "",
    "verbose": false,
    //specific
    "install": true,
    "version": "latest",
    "install_mode": "default",
    "provisioning_path": "/vagrant",
    "tmp_path": "/tmp/vagrant-ansible",
    "version": "",
    ""
  }, {
    "type": "cfengine",
    "name": "",
    "am_policy_hub": false,
    "extra_agent_args": null,
    "classes": [],
    "deb_repo_file": "/etc/apt/sourceyos.list.d/cfengine-community.list",
    "deb_repo_line": "deb https://cfengine.com/pub/apt $(lsb_release -cs) main",
    "files_path": null,
    "force_bootstrap": false,
    "install": true,
    "mode": "bootstrap",
    "policy_server_address": "",
    "repo_gpg_key_url": "https://cfengine.com/pub/gpg.key",
    "run_file": null,
    "upload_path": "/tmp/vagrant-cfengine-file",
    "yum_repo_file": "/etc/yum.repos.d/cfengine-community.repo",
    "yum_repo_url": "https://cfengine.com/pub/yum/",
    "package_name": "cfengine-community"
  }, {
    "type": "chef_solo",
    //common
    "name": "",
    "binary_path": "",
    "binary_env": "",
    "install": true, //false, "force"
    "installer_download_path": "",
    "log_level": "info",
    "product": "chef",
    "channel": "stable",
    "version": "latest",
    "arguments": "",
    "attempts": 1,
    "custom_config_path": "",
    "encrypted_data_bag_secret_key_path": "",
    "environment": "",
    "formatter": "",
    "http_proxy": "",
    "http_proxy_user": "",
    "http_proxy_pass": "",
    "no_proxy": "",
    "json": {},
    "node_name": "",
    "provisioning_path": "",
    "run_list": [],
    "file_cache_path": "",
    "file_backup_path": "",
    "verbose_logging": false,
    "enable_reporting": true,
    //specific
    "cookbooks_path": [],
    "data_bags_path": [],
    "environments_path": "",
    "nodes_path": [],
    "recipe_url": "",
    "roles_path": [],
    "synced_folder_type": ""
  }, {
    "type": "chef_zero",
    //common
    "name": "",
    "binary_path": "",
    "binary_env": "",
    "install": true, //false, "force"
    "installer_download_path": "",
    "log_level": "info",
    "product": "chef",
    "channel": "stable",
    "version": "latest",
    "arguments": "",
    "attempts": 1,
    "custom_config_path": "",
    "encrypted_data_bag_secret_key_path": "",
    "environment": "",
    "formatter": "",
    "http_proxy": "",
    "http_proxy_user": "",
    "http_proxy_pass": "",
    "no_proxy": "",
    "json": {},
    "node_name": "",
    "provisioning_path": "",
    "run_list": [],
    "file_cache_path": "",
    "file_backup_path": "",
    "verbose_logging": false,
    "enable_reporting": true,
    //specific
    "cookbooks_path": [],
    "data_bags_path": [],
    "environments_path": "",
    "nodes_path": [],
    "environment": "",
    "roles_path": [],
    "synced_folder_type": ""
  }, {
    "type": "chef_client",
    //common
    "name": "",
    "binary_path": "",
    "binary_env": "",
    "install": true, //false, "force"
    "installer_download_path": "",
    "log_level": "info",
    "product": "chef",
    "channel": "stable",
    "version": "latest",
    "arguments": "",
    "attempts": 1,
    "custom_config_path": "",
    "encrypted_data_bag_secret_key_path": "",
    "environment": "",
    "formatter": "",
    "http_proxy": "",
    "http_proxy_user": "",
    "http_proxy_pass": "",
    "no_proxy": "",
    "json": {},
    "node_name": "",
    "provisioning_path": "",
    "run_list": [],
    "file_cache_path": "",
    "file_backup_path": "",
    "verbose_logging": false,
    "enable_reporting": true,
    //specific
    "chef_server_url": "",
    "validation_key_path": "",
    "client_key_path": "",
    "validation_client_name": "",
    "delete_node": true,
    "delete_client": true
  }, {
    "type": "chef_apply",
    //common
    "name": "",
    "binary_path": "",
    "binary_env": "",
    "install": true, //false, "force"
    "installer_download_path": "",
    "log_level": "info",
    "product": "chef",
    "channel": "stable",
    "version": "latest",
    "arguments": "",
    "attempts": 1,
    "custom_config_path": "",
    "encrypted_data_bag_secret_key_path": "",
    "environment": "",
    "formatter": "",
    "http_proxy": "",
    "http_proxy_user": "",
    "http_proxy_pass": "",
    "no_proxy": "",
    "json": {},
    "node_name": "",
    "provisioning_path": "",
    "run_list": [],
    "file_cache_path": "",
    "file_backup_path": "",
    "verbose_logging": false,
    "enable_reporting": true,
    //specific
    "recipe": "",
    "upload_path": null
  }, {
    "type": "docker",
    "name": "",
    "images": [] //TODO support more functions like "build_image", "run"
  }, {
    "type": "puppet",
    "name": "",
    "binary_path": "",
    "facter": {},
    "hiera_config_path": "",
    "manifest_file": "default.pp",
    "manifests_path": "manifests",
    "module_path": "",
    "environment": "",
    "environment_path": "",
    "environment_variables": {},
    "options": [],
    "synced_folder_type": null,
    "synced_folder_args": [],
    "temp_dir": "",
    "working_directory": ""
  }, {
    "type": "puppet_server",
    "name": "",
    "binary_path": "",
    "client_cert_path": "",
    "clietn_private_key_path": "",
    "facter": {},
    "options": [],
    "puppet_node": null,
    "puppet_server": "puppet"
  }, {
    "type": "salt",
    "name": "",
    "install_master": null,
    "no_minion": false,
    "install_syndic": false,
    "install_type": "",
    "install_args": "develop",
    "always_install": false,
    "bootstrap_script": "",
    "bootstrap_options": "",
    "version": "2015.5.2",
    "minion_config": "salt/minion",
    "minion_key": "salt/key/minion.key",
    "minion_id": "",
    "minion_pub": "salt/key/minion.pub",
    "grains_config": "",
    "masterless": null,
    "master_config": "salt/master",
    "master_key": "salt/key/master.pem",
    "master_pub": "salt/key/master.pub",
    "seed_master": {},
    "run_highstate": null,
    "run_overstate": null,
    "orchestrations": [],
    "colorize": false,
    "log_level": "debug",
    "pillars": []
  }]
}

@hoatle
Copy link
Member Author

hoatle commented Jan 21, 2017

note: this is a breaking change for vagrant config, make sure to keep it backward compatible with the previous way of config (by deprecating the prev config so that everyone who is using the preview of teracy-dev with custom config still gets teracy-dev work as normal)

hoatle added a commit to hoatle/teracy-dev that referenced this issue Jan 22, 2017
…, Puppet, Salt, etc): support new config format, deprecate old chef config format, support shell config
hoatle added a commit to hoatle/teracy-dev that referenced this issue Jan 23, 2017
…, Puppet, Salt, etc): support file provisioner
hoatle added a commit to hoatle/teracy-dev that referenced this issue Jan 23, 2017
…, Puppet, Salt, etc): refactor code, move provisioner stuff to /lib/provisioner.rb file
hoatle added a commit to hoatle/teracy-dev that referenced this issue Jan 23, 2017
…, Puppet, Salt, etc): fully support, fully backward compatible, not fully tested though and that's ok for v0.5.0-b1
hoatle added a commit to hoatle/teracy-dev that referenced this issue Jan 23, 2017
hoatle added a commit to hoatle/teracy-dev that referenced this issue Jan 23, 2017
hoatle added a commit that referenced this issue Feb 2, 2017
…tools-support

Features/#166 more configuration tools support
hoatle added a commit that referenced this issue Feb 2, 2017
@hoatle hoatle closed this as completed Feb 2, 2017
hoatle added a commit that referenced this issue Feb 6, 2017
hoatle added a commit that referenced this issue Feb 6, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant