{"id":16567247,"url":"https://github.com/justin-p/ansible-role-chisel","last_synced_at":"2025-10-29T00:30:55.274Z","repository":{"id":47315119,"uuid":"301875295","full_name":"justin-p/ansible-role-chisel","owner":"justin-p","description":"A Ansible role to deploy a https://github.com/jpillora/chisel client and/or server as a systemd service.","archived":false,"fork":false,"pushed_at":"2024-10-07T18:05:45.000Z","size":66,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-01T20:25:47.099Z","etag":null,"topics":["ansible","ansible-galaxy","ansible-role","chisel","golang","hacktoberfest","http","systemd","tcp","tunnel"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/justin-p.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-10-06T23:04:34.000Z","updated_at":"2024-10-07T18:05:49.000Z","dependencies_parsed_at":"2024-03-19T20:53:56.798Z","dependency_job_id":"032a77eb-14f2-4524-a760-820d57f1a439","html_url":"https://github.com/justin-p/ansible-role-chisel","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/justin-p%2Fansible-role-chisel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justin-p%2Fansible-role-chisel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justin-p%2Fansible-role-chisel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justin-p%2Fansible-role-chisel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/justin-p","download_url":"https://codeload.github.com/justin-p/ansible-role-chisel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238743970,"owners_count":19523210,"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":["ansible","ansible-galaxy","ansible-role","chisel","golang","hacktoberfest","http","systemd","tcp","tunnel"],"created_at":"2024-10-11T21:06:04.068Z","updated_at":"2025-10-29T00:30:54.842Z","avatar_url":"https://github.com/justin-p.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ansible-role-chisel\n\n[![Ansible Role Name](https://img.shields.io/ansible/role/d/justin_p/chisel?style=flat-square\n)](https://galaxy.ansible.com/justin_p/chisel)\n[![Github Actions](https://img.shields.io/github/actions/workflow/status/justin-p/ansible-role-chisel/main.yml?label=Github%20Actions\u0026logo=github\u0026style=flat-square)](https://github.com/justin-p/ansible-role-chisel/actions)\n\nA Ansible role to deploy a [chisel](https://github.com/jpillora/chisel) client and/or server as a systemd service. The main idea is to use this to easily automate a dropbox scenario that ensures the client always callsback regardless of network issues, reboots or program crashes, while also taking advantage of what chisel can offer over a SSH or VPN based solution.\n\n## Requirements\n\nNone.\n\n## Variables\n\n`defaults/main.yml`\n\n| Variable                         | Description                                                                                                                                                                                                                                                | Default value                                                                                                             |\n| :------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- |\n| chisel_version                   | The release version of chisel linux amd64 to download.                                                                                                                                                                                                     | 1.8.1                                                                                                                     |\n| chisel_download_url_linux_amd64  | The download url.                                                                                                                                                                                                                                          | `https:\\\\github.com/jpillora/chisel/releases/download/v{{ chisel_version }}/chisel\\_{{ chisel_version }}\\_linux_amd64.gz` |\n| chisel_linux_amd64_sha256        | The sha256 checksum of the downloaded file.                                                                                                                                                                                                                | 0461e84f847489e8968b011128b6be6b001f487ae75b2a0c14ff6d4eafc9f2df                                                          |\n| chisel_download_destination      | The download destination.                                                                                                                                                                                                                                  | /tmp/chisel\\_{{ chisel_version }}.gz                                                                                      |\n| chisel_install_destination       | The location to install chisel.                                                                                                                                                                                                                            | /usr/local/bin/chisel                                                                                                     |\n| chisel_service_name              | The name of the service that should be installed.                                                                                                                                                                                                          | chisel-client                                                                                                             |\n| chisel_service_destination       | The destination where of the service file should be installed.                                                                                                                                                                                             | \"/lib/systemd/system/{{ chisel_service_name }}.service\"                                                                   |\n| chisel_service_template          | This role has 2 built-in templates, [chisel-client](https://github.com/justin-p/ansible-chisel/blob/main/templates/chisel-client.service.j2) and [chisel-server](https://github.com/justin-p/ansible-chisel/blob/main/templates/chisel-server.service.j2). | \"{{ chisel_service_name }}.service.j2\"                                                                                    |\n| chisel_config_name               | The name of the chisel config.                                                                                                                                                                                                                             | chisel-client                                                                                                             |\n| chisel_config_folder             | The folder where the chisel config will be installed.                                                                                                                                                                                                      | /etc/chisel/                                                                                                              |\n| chisel_config_template           | This role has 2 built-in templates, [chisel-client](https://github.com/justin-p/ansible-chisel/blob/main/templates/chisel-client.conf.j2) and [chisel-server](https://github.com/justin-p/ansible-chisel/blob/main/templates/chisel-server.conf.j2).       | \"{{ chisel_config_name }}.conf.j2\"                                                                                        |\n| chisel_config_destination        | The full path where the chisel config will be installed.                                                                                                                                                                                                   | \"{{ chisel_config_folder }}{{ chisel_config_name }}.conf\"                                                                 |\n| chisel_client_server_url         | The URL of the chisel server.                                                                                                                                                                                                                              | `http://127.0.0.1`                                                                                                        |\n| chisel_client_remotes            | The remotes that are tunneled through the server.                                                                                                                                                                                                          | \"8080\"                                                                                                                    |\n| chisel_client_server_fingerprint | The fingerprint of the server.                                                                                                                                                                                                                             | aa:bb:cc:dd:ee:ff:gg                                                                                                      |\n| chisel_client_auth_username      | The username to authenticate with.                                                                                                                                                                                                                         | user                                                                                                                      |\n| chisel_client_auth_password      | The password to authenticate with.                                                                                                                                                                                                                         | pass                                                                                                                      |\n| chisel_client_keepalive          | The keep alive for the client.                                                                                                                                                                                                                             | 25s                                                                                                                       |\n| chisel_client_max_retry_count    | The max retry count for the client.                                                                                                                                                                                                                        | unlimited                                                                                                                 |\n| chisel_client_max_retry_interval | The max retry interval for the client.                                                                                                                                                                                                                     | 5                                                                                                                         |\n| chisel_client_proxy              | An optional HTTP CONNECT or SOCKS5 proxy which will be used to reach the chisel server.                                                                                                                                                                    | `http://admin:password@my-server.com:8081`                                                                                |\n| chisel_client_headers            | Set a custom header in the form \"HeaderName: HeaderContent\".                                                                                                                                                                                               | '--header \"Foo : Bar\" --header \"Hello : World\"'                                                                           |\n| chisel_client_hostname           | Optionally set the 'Host' header.                                                                                                                                                                                                                          | example.com                                                                                                               |\n| chisel_client_tls_ca             | An optional root certificate bundle used to verify the chisel server.                                                                                                                                                                                      | /path/to/bundle                                                                                                           |\n| chisel_client_tls_key            | A path to a PEM encoded private key used for client authentication.                                                                                                                                                                                        | /path/to/PEM                                                                                                              |\n| chisel_client_tls_cert           | A path to a PEM encoded certificate matching the provided private key.                                                                                                                                                                                     | /path/to/PEM                                                                                                              |\n| chisel_server_host               | Defines the HTTP listening host – the network interface.                                                                                                                                                                                                   | 0.0.0.0                                                                                                                   |\n| chisel_server_port               | Defines the HTTP listening port.                                                                                                                                                                                                                           | 80                                                                                                                        |\n| chisel_server_key                | An optional string to seed the generation of a ECDSA keypair.                                                                                                                                                                                              | a_random_string                                                                                                           |\n| chisel_server_auth_file          | An optional path to a users.json file.                                                                                                                                                                                                                     | /path/to/user.json                                                                                                        |\n| chisel_server_auth               | An optional string representing a single user with full access.                                                                                                                                                                                            | user:pass                                                                                                                 |\n| chisel_server_keepalive          | The keep alive for the server.                                                                                                                                                                                                                             | 25s                                                                                                                       |\n| chisel_server_backend            | Specifies another HTTP server to proxy requests to when chisel receives a normal HTTP request.                                                                                                                                                             | `http://127.0.0.1:8081`                                                                                                   |\n| chisel_server_tls_ca             | A path to a PEM encoded CA certificate bundle.                                                                                                                                                                                                             | /path/to/PEM                                                                                                              |\n| chisel_server_tls_key            | Enables TLS and provides optional path to a PEM-encoded TLS private key.                                                                                                                                                                                   | /path/to/PEM                                                                                                              |\n| chisel_server_tls_cert           | Enables TLS and provides optional path to a PEM-encoded TLS certificate.                                                                                                                                                                                   | /path/to/PEM                                                                                                              |\n\n## Dependencies\n\nNone.\n\n## Example Playbooks\n\n### Client with example template\n\n```yml\n---\n- hosts: local\n  become: yes\n  roles:\n    - role: justin_p.chisel\n```\n\n### Server with example template\n\n```yml\n---\n- hosts: local\n  become: yes\n  roles:\n    - role: justin_p.chisel\n      vars:\n        chisel_service_name: chisel-server\n        chisel_config_name: chisel-server\n```\n\n## Local Development\n\nThis role includes molecule that will spin up a local docker environment to deploy, configure and test this role.\n\nDevelopment requirements:\n\n- Docker\n- Molecule\n- yamllint\n- ansible-lint\n\nor simply use a VM with [this](https://github.com/justin-p/ansible-terraform-workstation) configuration.\n\n## License\n\nMIT\n\n## Authors\n\nJustin Perdok ([@justin-p](https://github.com/justin-p/)), Orange Cyberdefense\n\n## Contributing\n\nFeel free to open issues, contribute and submit your Pull Requests. You can also ping me on Twitter ([@JustinPerdok](https://twitter.com/JustinPerdok))\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustin-p%2Fansible-role-chisel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustin-p%2Fansible-role-chisel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustin-p%2Fansible-role-chisel/lists"}