Skip to content

Commit 454faa9

Browse files
dguidoclaude
andauthored
fix: Prevent sensitive information from being logged (#14779)
* fix: Add no_log to tasks handling sensitive information - Add no_log: true to OpenSSL commands that contain passwords/passphrases - Add no_log: true to WireGuard key generation commands - Add no_log: true to password/CA password generation tasks - Add no_log: true to AWS credential handling tasks - Add no_log: true to QR code generation that contains full configs This prevents sensitive information like passwords, private keys, and WireGuard configurations from being logged to syslog/journald. Fixes #1617 * feat: Comprehensive privacy enhancements - Add no_log directives to all cloud provider credential handling - Set privacy-focused defaults (StrongSwan logging disabled, DNSCrypt syslog off) - Implement privacy role with log rotation, history clearing, and log filtering - Add Privacy Considerations section to README - Make all privacy features configurable and enabled by default This update significantly reduces Algo's logging footprint to enhance user privacy while maintaining the ability to enable logging for debugging when needed. * docs: Move privacy documentation from README to FAQ - Remove Privacy Considerations section from README - Add expanded 'Does Algo support zero logging?' question to FAQ - Better placement alongside existing logging/monitoring questions - More detailed explanation of privacy features and limitations * fix: Remove invalid 'bool' filter from Jinja2 template The privacy-monitor.sh.j2 template was using '| bool' which is not a valid Jinja2 filter. The 'bool' is a built-in Python function, not a Jinja2 filter. Fixed by removing the '| bool' filter and directly outputting the boolean variables as they will be rendered correctly by Jinja2. This resolves the template syntax error that was causing CI tests to fail: "No filter named 'bool'" error in privacy monitoring script template. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Fix YAML linting issues in privacy role * Fix linting warnings: shellcheck and ansible-lint issues - Fixed all shellcheck warnings in test scripts: - Quoted variables to prevent word splitting - Replaced A && B || C constructs with proper if-then-else - Changed unused loop variable to _ - Added shellcheck directives for FreeBSD rc.d script - Fixed ansible-lint risky-file-permissions warnings: - Added explicit file permissions for sensitive files (mode 0600) - Added permissions for config files and certificates (mode 0644) - Set proper permissions for directories (mode 0755) - Fixed yamllint compatibility with ansible-lint: - Added required octal-values configuration - Quoted all octal mode values to prevent YAML misinterpretation - Added comments-indentation: false as required All tests pass and functionality remains unchanged. * Remove algo.egg-info from version control This directory is generated by Python package tools (pip/setuptools) and should not be tracked in git. It's already listed in .gitignore but was accidentally committed. The directory contains build metadata that is regenerated when the package is installed. * Restructure privacy documentation for clarity - Simplified FAQ entry to be concise with link to README for details - Added comprehensive Privacy and Logging section to README - Clarified what IS logged by default vs what is not - Explained two separate privacy settings (strongswan_log_level and privacy_enhancements_enabled) - Added clear debugging instructions (need to change both settings) - Removed confusing language about "enabling additional features" - Made documentation more natural and less AI-generated sounding 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Fix Ubuntu 22.04 iptables deployment issues and simplify config.cfg Issues fixed: 1. Added base 'iptables' package to batch installation list (was missing, only iptables-persistent was included) 2. Fixed alternatives configuration for Ubuntu 22.04+ - only configure main iptables/ip6tables alternatives, not save/restore (they're handled as slaves) Config.cfg improvements: - Reduced from 308 to 198 lines (35% reduction) - Moved privacy settings above "Advanced users only" line for better accessibility - Clarified algo_no_log is for Ansible output, not server privacy - Simplified verbose comments throughout - Moved experimental performance options to commented section at end - Better organized into logical sections 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Add privacy features to README and improve feature descriptions - Added privacy-focused feature bullet highlighting minimal logging and privacy enhancements - Simplified IKEv2 bullet (removed redundant platform list) - Updated helper scripts description to be more comprehensive - Specified Ubuntu 22.04 LTS and automatic security updates - Made feature list more concise and accurate 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Fix logrotate duplicate entries error in privacy role The privacy role was creating logrotate configs that duplicated the default Ubuntu rsyslog logrotate rules, causing deployment failures with errors like 'duplicate log entry for /var/log/syslog'. Changes: - Disable default rsyslog logrotate config before applying privacy configs - Consolidate system log rotation into single config file - Add missingok flag to handle logs that may not exist on all systems - Remove forced immediate rotation that was triggering the error This ensures privacy-enhanced log rotation works without conflicts. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Fix 'history: not found' error in privacy role The 'history -c' command was failing because history is a bash built-in that doesn't exist in /bin/sh (Ubuntu's default shell for scripts). Changes: - Removed the 'Clear current session history' task since it's ineffective in Ansible context (each task runs in a new shell) - History files are already cleared by the existing file removal tasks - Added explanatory comment about why session history clearing is omitted This fixes the deployment failure while maintaining all effective history clearing functionality. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Fix BPF JIT sysctl error in privacy role The net.core.bpf_jit_enable sysctl parameter was failing on some systems because BPF JIT support is not available in all kernel configurations. Changes: - Separated BPF JIT setting into its own task with ignore_errors - Made BPF JIT disabling optional since it's not critical for privacy - Added explanatory comments about kernel support variability - Both runtime sysctl and persistent config now handle missing parameter This allows deployments to succeed on systems without BPF JIT support while still applying the setting where available. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]>
1 parent 315898f commit 454faa9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+1390
-123
lines changed

.yamllint

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ rules:
1717
level: warning
1818
comments:
1919
min-spaces-from-content: 1
20+
comments-indentation: false
21+
octal-values:
22+
forbid-implicit-octal: true
23+
forbid-explicit-octal: true
2024
braces:
2125
max-spaces-inside: 1
2226
truthy:

README.md

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@ See our [release announcement](https://blog.trailofbits.com/2016/12/12/meet-algo
88

99
## Features
1010

11-
* Supports only IKEv2 with strong crypto (AES-GCM, SHA2, and P-256) for iOS, macOS, and Linux
11+
* Supports only IKEv2 with strong crypto (AES-GCM, SHA2, and P-256) for iOS, MacOS, and Linux
1212
* Supports [WireGuard](https://www.wireguard.com/) for all of the above, in addition to Android and Windows 11
1313
* Generates .conf files and QR codes for iOS, macOS, Android, and Windows WireGuard clients
1414
* Generates Apple profiles to auto-configure iOS and macOS devices for IPsec - no client software required
15-
* Includes a helper script to add and remove users
15+
* Includes helper scripts to add, remove, and manage users
1616
* Blocks ads with a local DNS resolver (optional)
1717
* Sets up limited SSH users for tunneling traffic (optional)
18-
* Based on current versions of Ubuntu and strongSwan
18+
* Privacy-focused with minimal logging, automatic log rotation, and configurable privacy enhancements
19+
* Based on Ubuntu 22.04 LTS with automatic security updates
1920
* Installs to DigitalOcean, Amazon Lightsail, Amazon EC2, Vultr, Microsoft Azure, Google Compute Engine, Scaleway, OpenStack, CloudStack, Hetzner Cloud, Linode, or [your own Ubuntu server (for advanced users)](docs/deploy-to-ubuntu.md)
2021

2122
## Anti-features
@@ -175,6 +176,33 @@ To add or remove users, first edit the `users` list in your `config.cfg` file. A
175176

176177
After the process completes, new configuration files will be generated in the `configs` directory for any new users. The Algo VPN server will be updated to contain only the users listed in the `config.cfg` file. Removed users will no longer be able to connect, and new users will have fresh certificates and configuration files ready for use.
177178

179+
## Privacy and Logging
180+
181+
Algo takes a pragmatic approach to privacy. By default, we minimize logging while maintaining enough information for security and troubleshooting.
182+
183+
What IS logged by default:
184+
* System security events (failed SSH attempts, firewall blocks, system updates)
185+
* Kernel messages and boot diagnostics (with reduced verbosity)
186+
* WireGuard client state (visible via `sudo wg` - shows last endpoint and handshake time)
187+
* Basic service status (service starts/stops/errors)
188+
* All logs automatically rotate and delete after 7 days
189+
190+
Privacy is controlled by two main settings in `config.cfg`:
191+
* `strongswan_log_level: -1` - Controls StrongSwan connection logging (-1 = disabled, 2 = debug)
192+
* `privacy_enhancements_enabled: true` - Master switch for log rotation, history clearing, log filtering, and cleanup
193+
194+
To enable full debugging when troubleshooting, set both `strongswan_log_level: 2` and `privacy_enhancements_enabled: false`. This will capture detailed connection logs and disable all privacy features. Remember to revert these changes after debugging.
195+
196+
After deployment, verify your privacy settings:
197+
```bash
198+
ssh -F configs/<server_ip>/ssh_config <hostname>
199+
sudo /usr/local/bin/privacy-monitor.sh
200+
```
201+
202+
Perfect privacy is impossible with any VPN solution. Your cloud provider sees and logs network traffic metadata regardless of your server configuration. And of course, your ISP knows you're connecting to a VPN server, even if they can't see what you're doing through it.
203+
204+
For the highest level of privacy, treat your Algo servers as disposable. Spin up a new instance when you need it, use it for your specific purpose, then destroy it completely. The ephemeral nature of cloud infrastructure can be a privacy feature if you use it intentionally.
205+
178206
## Additional Documentation
179207
* [FAQ](docs/faq.md)
180208
* [Troubleshooting](docs/troubleshooting.md)

config.cfg

Lines changed: 42 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -12,106 +12,61 @@ users:
1212

1313
### Review these options BEFORE you run Algo, as they are very difficult/impossible to change after the server is deployed.
1414

15-
# Performance optimizations (reduces deployment time)
16-
# Skip reboots unless kernel was updated (saves 0-5 minutes)
17-
performance_skip_optional_reboots: false
18-
# Use parallel key generation for certificates (saves 1-2 minutes)
19-
performance_parallel_crypto: false
20-
# Batch install all packages in one operation (saves 30-60 seconds)
21-
performance_parallel_packages: false
22-
# Pre-install universal packages via cloud-init (saves 30-90 seconds)
23-
performance_preinstall_packages: false
24-
# Configure VPN services in parallel (saves 1-2 minutes)
25-
performance_parallel_services: false
26-
27-
# Change default SSH port for the cloud roles only
28-
# It doesn't apply if you deploy to your existing Ubuntu Server
15+
# SSH port for cloud deployments (doesn't apply to existing Ubuntu servers)
2916
ssh_port: 4160
3017

31-
# Deploy StrongSwan to enable IPsec support
18+
# VPN protocols to deploy
3219
ipsec_enabled: true
33-
34-
# Deploy WireGuard
35-
# WireGuard will listen on 51820/UDP. You might need to change to another port
36-
# if your network blocks this one. Be aware that 53/UDP (DNS) is blocked on some
37-
# mobile data networks.
3820
wireguard_enabled: true
39-
wireguard_port: 51820
21+
wireguard_port: 51820 # Change if blocked by your network (avoid 53/UDP)
4022

41-
# This feature allows you to configure the Algo server to send outbound traffic
42-
# through a different external IP address than the one you are establishing the VPN connection with.
43-
# More info https://trailofbits.github.io/algo/cloud-alternative-ingress-ip.html
44-
# Available for the following cloud providers:
45-
# - DigitalOcean
23+
# Use different IP for outbound traffic (DigitalOcean only)
4624
alternative_ingress_ip: false
4725

48-
# Reduce the MTU of the VPN tunnel
49-
# Some cloud and internet providers use a smaller MTU (Maximum Transmission
50-
# Unit) than the normal value of 1500 and if you don't reduce the MTU of your
51-
# VPN tunnel some network connections will hang. Algo will attempt to set this
52-
# automatically based on your server, but if connections hang you might need to
53-
# adjust this yourself.
54-
# See: https://github.com/trailofbits/algo/blob/master/docs/troubleshooting.md#various-websites-appear-to-be-offline-through-the-vpn
26+
# Reduce MTU if connections hang (0 = auto-detect)
27+
# See: docs/troubleshooting.md#various-websites-appear-to-be-offline-through-the-vpn
5528
reduce_mtu: 0
5629

57-
# Algo will use the following lists to block ads. You can add new block lists
58-
# after deployment by modifying the line starting "BLOCKLIST_URLS=" at:
59-
# /usr/local/sbin/adblock.sh
60-
# If you load very large blocklists, you may also have to modify resource limits:
61-
# /etc/systemd/system/dnsmasq.service.d/100-CustomLimitations.conf
30+
# Ad blocking lists (modify /usr/local/sbin/adblock.sh after deployment to add more)
6231
adblock_lists:
63-
- "https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts"
32+
- "https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts"
6433

65-
# Enable DNS encryption.
66-
# If 'false', 'dns_servers' should be specified below.
67-
# DNS encryption can not be disabled if DNS adblocking is enabled
34+
# DNS encryption (required if using ad blocking)
6835
dns_encryption: true
6936

70-
# Block traffic between connected clients. Change this to false to enable
71-
# connected clients to reach each other, as well as other computers on the
72-
# same LAN as your Algo server (i.e. the "road warrior" setup). In this
73-
# case, you may also want to enable SMB/CIFS and NETBIOS traffic below.
37+
# Client isolation (set false for "road warrior" setup where clients can reach each other)
7438
BetweenClients_DROP: true
39+
block_smb: true # Block SMB/CIFS traffic
40+
block_netbios: true # Block NETBIOS traffic
7541

76-
# Block SMB/CIFS traffic
77-
block_smb: true
78-
79-
# Block NETBIOS traffic
80-
block_netbios: true
81-
82-
# Your Algo server will automatically install security updates. Some updates
83-
# require a reboot to take effect but your Algo server will not reboot itself
84-
# automatically unless you change 'enabled' below from 'false' to 'true', in
85-
# which case a reboot will take place if necessary at the time specified (as
86-
# HH:MM) in the time zone of your Algo server. The default time zone is UTC.
42+
# Automatic reboot for security updates (time in server's timezone, default UTC)
8743
unattended_reboot:
8844
enabled: false
8945
time: 06:00
9046

47+
### Privacy Settings ###
48+
# StrongSwan connection logging (-1 = disabled, 2 = debug)
49+
strongswan_log_level: -1
50+
51+
# Master switch for privacy enhancements (log rotation, history clearing, etc.)
52+
# Set to false for debugging. For advanced privacy options, see roles/privacy/defaults/main.yml
53+
privacy_enhancements_enabled: true
54+
9155
### Advanced users only below this line ###
9256

93-
# DNS servers which will be used if 'dns_encryption' is 'true'. Multiple
94-
# providers may be specified, but avoid mixing providers that filter results
95-
# (like Cisco) with those that don't (like Cloudflare) or you could get
96-
# inconsistent results. The list of available public providers can be found
97-
# here:
98-
# https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v2/public-resolvers.md
57+
# DNSCrypt providers (see https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v2/public-resolvers.md)
9958
dnscrypt_servers:
10059
ipv4:
10160
- cloudflare
10261
# - google
103-
# - <YourCustomServer> # E.g., if using NextDNS, this will be something like NextDNS-abc123.
104-
# You must also fill in custom_server_stamps below. You may specify
105-
# multiple custom servers.
62+
# - YourCustomServer # For NextDNS etc., add stamp below
10663
ipv6:
10764
- cloudflare-ipv6
10865

10966
custom_server_stamps:
11067
# YourCustomServer: 'sdns://...'
11168

112-
# DNS servers which will be used if 'dns_encryption' is 'false'.
113-
# Fallback resolvers for systemd-resolved
114-
# The default is to use Cloudflare.
69+
# DNS servers when encryption is disabled
11570
dns_servers:
11671
ipv4:
11772
- 1.1.1.1
@@ -120,37 +75,36 @@ dns_servers:
12075
- 2606:4700:4700::1111
12176
- 2606:4700:4700::1001
12277

123-
# Store the PKI in a ram disk. Enabled only if store_pki (retain the PKI) is set to false
124-
# Supports on MacOS and Linux only (including Windows Subsystem for Linux)
78+
# Store PKI in RAM disk when not retaining (MacOS/Linux only)
12579
pki_in_tmpfs: true
12680

127-
# Set this to 'true' when running './algo update-users' if you want ALL users to get new certs, not just new users.
81+
# Regenerate ALL user certs on update-users (not just new users)
12882
keys_clean_all: false
12983

130-
# StrongSwan log level
131-
# https://wiki.strongswan.org/projects/strongswan/wiki/LoggerConfiguration
132-
strongswan_log_level: 2
133-
134-
# rightsourceip for ipsec
135-
# ipv4
84+
### VPN Network Configuration ###
13685
strongswan_network: 10.48.0.0/16
137-
# ipv6
13886
strongswan_network_ipv6: '2001:db8:4160::/48'
13987

140-
# If you're behind NAT or a firewall and you want to receive incoming connections long after network traffic has gone silent.
141-
# This option will keep the "connection" open in the eyes of NAT.
142-
# See: https://www.wireguard.com/quickstart/#nat-and-firewall-traversal-persistence
143-
wireguard_PersistentKeepalive: 0
144-
145-
# WireGuard network configuration
14688
wireguard_network_ipv4: 10.49.0.0/16
14789
wireguard_network_ipv6: 2001:db8:a160::/48
14890

91+
# Keep NAT connections alive (0 = disabled)
92+
wireguard_PersistentKeepalive: 0
93+
94+
### Experimental Performance Options ###
95+
# These are experimental and may cause issues. Enable at your own risk.
96+
# performance_skip_optional_reboots: false # Skip non-kernel reboots
97+
# performance_parallel_crypto: false # Parallel key generation
98+
# performance_parallel_packages: false # Batch package installation
99+
# performance_preinstall_packages: false # Pre-install via cloud-init
100+
# performance_parallel_services: false # Configure VPN services in parallel
101+
149102
# Randomly generated IP address for the local dns resolver
150103
local_service_ip: "{{ '172.16.0.1' | ansible.utils.ipmath(1048573 | random(seed=algo_server_name + ansible_fqdn)) }}"
151104
local_service_ipv6: "{{ 'fd00::1' | ansible.utils.ipmath(1048573 | random(seed=algo_server_name + ansible_fqdn)) }}"
152105

153-
# Hide sensitive data
106+
# Hide sensitive data in Ansible output during deployment (passwords, keys, etc.)
107+
# This is NOT related to privacy/logging on the VPN server itself
154108
algo_no_log: true
155109

156110
congrats:
@@ -218,11 +172,11 @@ cloud_providers:
218172
image: Ubuntu 22.04 Jammy Jellyfish
219173
arch: x86_64
220174
hetzner:
221-
server_type: cpx11
175+
server_type: cpx11
222176
image: ubuntu-22.04
223177
openstack:
224178
flavor_ram: ">=512"
225-
image: Ubuntu-22.04
179+
image: Ubuntu-22.04
226180
cloudstack:
227181
size: Micro
228182
image: Linux Ubuntu 22.04 LTS 64-bit

docs/faq.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
* [I deployed an Algo server. Can you update it with new features?](#i-deployed-an-algo-server-can-you-update-it-with-new-features)
1111
* [Where did the name "Algo" come from?](#where-did-the-name-algo-come-from)
1212
* [Can DNS filtering be disabled?](#can-dns-filtering-be-disabled)
13+
* [Does Algo support zero logging?](#does-algo-support-zero-logging)
1314
* [Wasn't IPSEC backdoored by the US government?](#wasnt-ipsec-backdoored-by-the-us-government)
1415
* [What inbound ports are used?](#what-inbound-ports-are-used)
1516
* [How do I monitor user activity?](#how-do-i-monitor-user-activity)
@@ -59,6 +60,10 @@ Algo is short for "Al Gore", the **V**ice **P**resident of **N**etworks everywhe
5960

6061
You can temporarily disable DNS filtering for all IPsec clients at once with the following workaround: SSH to your Algo server (using the 'shell access' command printed upon a successful deployment), edit `/etc/ipsec.conf`, and change `rightdns=<random_ip>` to `rightdns=8.8.8.8`. Then run `sudo systemctl restart strongswan`. DNS filtering for WireGuard clients has to be disabled on each client device separately by modifying the settings in the app, or by directly modifying the `DNS` setting on the `clientname.conf` file. If all else fails, we recommend deploying a new Algo server without the adblocking feature enabled.
6162

63+
## Does Algo support zero logging?
64+
65+
Yes, Algo includes privacy enhancements that minimize logging by default. StrongSwan connection logging is disabled, DNSCrypt syslog is turned off, and logs are automatically rotated after 7 days. However, some system-level logging remains for security and troubleshooting purposes. For detailed privacy configuration and limitations, see the [Privacy and Logging](#privacy-and-logging) section in the README.
66+
6267
## Wasn't IPSEC backdoored by the US government?
6368

6469
No.

roles/client/tasks/main.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,14 @@
4545
dest: "{{ item.dest }}"
4646
line: "{{ item.line }}"
4747
create: true
48+
mode: "{{ item.mode }}"
4849
with_items:
4950
- dest: "{{ configs_prefix }}/ipsec.conf"
5051
line: include ipsec.{{ IP_subject_alt_name }}.conf
52+
mode: '0644'
5153
- dest: "{{ configs_prefix }}/ipsec.secrets"
5254
line: include ipsec.{{ IP_subject_alt_name }}.secrets
55+
mode: '0600'
5356
notify:
5457
- restart strongswan
5558

@@ -59,18 +62,22 @@
5962
dest: "{{ configs_prefix }}/strongswan.d/relax-ca-constraints.conf"
6063
owner: root
6164
group: root
62-
mode: 0644
65+
mode: '0644'
6366

6467
- name: Setup the certificates and keys
6568
template:
6669
src: "{{ item.src }}"
6770
dest: "{{ item.dest }}"
71+
mode: "{{ item.mode }}"
6872
with_items:
6973
- src: configs/{{ IP_subject_alt_name }}/ipsec/.pki/certs/{{ vpn_user }}.crt
7074
dest: "{{ configs_prefix }}/ipsec.d/certs/{{ vpn_user }}.crt"
75+
mode: '0644'
7176
- src: configs/{{ IP_subject_alt_name }}/ipsec/.pki/cacert.pem
7277
dest: "{{ configs_prefix }}/ipsec.d/cacerts/{{ IP_subject_alt_name }}.pem"
78+
mode: '0644'
7379
- src: configs/{{ IP_subject_alt_name }}/ipsec/.pki/private/{{ vpn_user }}.key
7480
dest: "{{ configs_prefix }}/ipsec.d/private/{{ vpn_user }}.key"
81+
mode: '0600'
7582
notify:
7683
- restart strongswan

roles/cloud-azure/tasks/prompts.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
tenant: "{{ azure_tenant | default(lookup('env', 'AZURE_TENANT'), true) }}"
55
client_id: "{{ azure_client_id | default(lookup('env', 'AZURE_CLIENT_ID'), true) }}"
66
subscription_id: "{{ azure_subscription_id | default(lookup('env', 'AZURE_SUBSCRIPTION_ID'), true) }}"
7+
no_log: true
78

89
- block:
910
- name: Set the default region

roles/cloud-cloudstack/tasks/main.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,4 @@
5757
CLOUDSTACK_KEY: "{{ algo_cs_key }}"
5858
CLOUDSTACK_SECRET: "{{ algo_cs_token }}"
5959
CLOUDSTACK_ENDPOINT: "{{ algo_cs_url }}"
60+
no_log: true

roles/cloud-cloudstack/tasks/prompts.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
when:
99
- cs_key is undefined
1010
- lookup('env', 'CLOUDSTACK_KEY')|length <= 0
11+
no_log: true
1112

1213
- pause:
1314
prompt: |
@@ -17,6 +18,7 @@
1718
when:
1819
- cs_secret is undefined
1920
- lookup('env', 'CLOUDSTACK_SECRET')|length <= 0
21+
no_log: true
2022

2123
- pause:
2224
prompt: |
@@ -34,6 +36,7 @@
3436
{{ cs_url | default(_cs_url.user_input|default(None)) |
3537
default(lookup('env', 'CLOUDSTACK_ENDPOINT'), true) |
3638
default('https://api.exoscale.com/compute', true) }}
39+
no_log: true
3740

3841
- name: Get zones on cloud
3942
cs_zone_info:
@@ -42,6 +45,7 @@
4245
CLOUDSTACK_KEY: "{{ algo_cs_key }}"
4346
CLOUDSTACK_SECRET: "{{ algo_cs_token }}"
4447
CLOUDSTACK_ENDPOINT: "{{ algo_cs_url }}"
48+
no_log: true
4549

4650
- name: Extract zones from output
4751
set_fact:

roles/cloud-digitalocean/tasks/prompts.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@
77
when:
88
- do_token is undefined
99
- lookup('env', 'DO_API_TOKEN')|length <= 0
10+
no_log: true
1011

1112
- name: Set the token as a fact
1213
set_fact:
1314
algo_do_token: "{{ do_token | default(_do_token.user_input | default(None)) | default(lookup('env', 'DO_API_TOKEN'), true) }}"
15+
no_log: true
1416

1517
- name: Get regions
1618
uri:
@@ -21,6 +23,7 @@
2123
Content-Type: application/json
2224
Authorization: Bearer {{ algo_do_token }}
2325
register: _do_regions
26+
no_log: true
2427

2528
- name: Set facts about the regions
2629
set_fact:

roles/cloud-ec2/tasks/cloudformation.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@
2020
tags:
2121
Environment: Algo
2222
register: stack
23+
no_log: true

0 commit comments

Comments
 (0)