{"id":22170544,"url":"https://github.com/diegohce/camerata","last_synced_at":"2025-07-26T14:30:36.169Z","repository":{"id":64304430,"uuid":"58237620","full_name":"diegohce/camerata","owner":"diegohce","description":"Simple and easy to use server orchestration set of tools made with love and Go.","archived":false,"fork":false,"pushed_at":"2016-10-18T19:52:34.000Z","size":2477,"stargazers_count":11,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-06-20T03:33:08.371Z","etag":null,"topics":["automation","devops","go","golang","orchestration","server"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/diegohce.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-05-06T22:13:10.000Z","updated_at":"2024-06-20T03:33:08.371Z","dependencies_parsed_at":"2023-01-15T10:15:43.489Z","dependency_job_id":null,"html_url":"https://github.com/diegohce/camerata","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegohce%2Fcamerata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegohce%2Fcamerata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegohce%2Fcamerata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegohce%2Fcamerata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diegohce","download_url":"https://codeload.github.com/diegohce/camerata/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227685885,"owners_count":17804136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","devops","go","golang","orchestration","server"],"created_at":"2024-12-02T06:52:11.693Z","updated_at":"2024-12-02T06:52:14.076Z","avatar_url":"https://github.com/diegohce.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Camerata #\n\nSimple and easy to use server orchestration set of tools made with love and golang.\n\n# camerata command line options: #\n\n```\n\n  -args string\n    \tModule arguments\n  -ask-bastion-pass\n    \tAsks for password on the command line for bastion jump\n  -ask-pass\n    \tAsks for password on the command line (default true)\n  -bastion string\n    \tBastion or jumpbox server\n  -bastion-pass string\n    \tBastion or jumpbox server password (default: same as --pass)\n  -bastion-user string\n    \tBastion or jumpbox server login user (default: same as --user)\n  -hosts string\n    \tComma separated hosts list\n  -inventory string\n    \tInventory file\n  -module string\n    \tModule to run (default \"test\")\n  -modules\n    \tList available modules\n  -pass string\n    \tUse this password\n  -pem string\n    \tPath to pemfile for auth\n  -quiet\n    \tNo camerata output\n  -sudo\n    \tRun as sudo\n  -sudo-nopass\n    \tRun as sudo without pass\n  -test\n    \tRuns whoami on remote host\n  -user string\n    \tLogin user\n\n```\n\n# camerata-inventory #\n\nCamerata inventory file generator.\n\n## Inventory file format ##\n\nInventory files are [toml v0.2.0](https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.2.0.md) files with three main sections:\n\n### bastion (optional) ###\n\nSpecifies connection data regarding the bastion or jumpbox server. It resembles the command line arguments:\n\n```\n\n-bastion string\n        Bastion or jumpbox server\n  -bastion-pass string\n        Bastion or jumpbox server password (default: same as --pass)\n  -bastion-user string\n        Bastion or jumpbox server login user (default: same as --user)\n```\n\nIn inventory file format\n\n```\n[bastion]\nhost=\"host_name_or_ip.to_bastion[:port]\"\nuser=\"username\" # to jump with\npassword=\"the_username_secret\"\n```\n\n**password** and **user** are optional and, if not specified will be taken from the command line arguments.\n\n### Servers ###\n\nThis is you servers inventory list. \n\n```\n[servers]\n  [servers.some_server_name]\n  host=\"ip_or_hostname[:port]\" #default port is 22\n  \n  user=\"username\" #if it's not present , command line --user option\n  \n  password=\"user_secret_word\" #if it's not present , command line --pass option or the one prompted in the console.\n  \n  sudo=false # or true if you want to run modules as root.\n  \n  sudo_nopass=false # or true if sudo does not ask for password.\n\t\n  use_bastion=false # or true if we need to jump through the [bastion] host.\n\n  [servers.some_other_server]\n  host=\"other_ip_or_hostname\"\n  user=\"username\"\n\n# and so on...\n```\n\n### Modules ###\n\nModules are the operation unit. If there's no modules on the inventory file, **camerata** will loop through the servers list and will connect and disconnect with no further action.\n\nButt (double t intended ;) if you have a **[[modules]]** section on your inventory file, **camerata** will execute each one in order on every server in the servers list.\n\nAt the time of this writing, the following modules are available:\n\n- about\n- test\n- copy\n- command\n- apt (unstable yet)\n- git\n- pip\n- rcopy\n\nExecute camerata with *--modules* to get a list of available modules and how to use them.\n\n\nInventory file format for modules:\n\n```\n[[modules]]\nname=\"test\"\nargs=\"\" #no args, it just execs \"whoami\" on the server.\n\n[[modules]]\nname=\"copy\"\nargs=\"source=/path/to/my/file target=/destination/dir/on/server\"\n\n[[modules]]\nname=\"command\"\nargs=\"cat /path/to/my/file\" # bash command line\n\n```\n\n\n## Available backends (inventory generators) ##\n\n * vmware\n * about\n * amazon (working on it...)\n\n\n## camerata-inventory **about** command line options: ##\n\nNo options, just an about message.\n\n\n## camerata-inventory **vmware** command line options: ##\n\n\n```\n#!bash\n\n -bastion string\n    \tBastion or jumpbox server (name or ip address)\n  -bastion-nets string\n    \tComma separated list of segments that uses --bastion (e.g.: 10.54.165.,10.54.170.)\n  -format string\n    \tOutput format: toml, csv (default \"toml\")\n  -host string\n    \tvCenter host[:port] or ip[:port]\n  -insecure\n    \tDon't check server certificate (default true)\n  -pass string\n    \tvCenter password\n  -user string\n    \tvCenter username\n```\n\n## camerata-inventory **amazon** command line options: ##\n\nBackend into development stage\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiegohce%2Fcamerata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiegohce%2Fcamerata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiegohce%2Fcamerata/lists"}