Commit Graph
88 Commits
Author SHA1 Message Date
Steven Martin 6200145432 Update tar install to include enterprise suffix (#53323) 2025-03-24 11:31:47 +00:00
Marco Dinis 85f92c3154 Improve error message for invalid application names (#53269)
* Improve error message for invalid application names

* fix tests
2025-03-24 09:44:45 +00:00
Steven Martin 2c170c65cc Update install instrs on package name removal (#53266) 2025-03-21 14:58:00 +00:00
Hugo Shaka c20095e9d6 Align semver libs (#52795)
* Convert autoupdate version handling to coreos/go-semver

* get the right version in installer endpoint + get rid of x/mod/semver

* depguard x/mod/semver

* Add nolint rules for existing x/mod/semver usages

* Add depguard explanation
2025-03-19 18:03:35 +00:00
Marco Dinis 0bf6bfcb73 Escape labels on Node Join scripts (#52350) 2025-03-03 15:24:08 +00:00
Hugo Shaka 569cb3cb26 Modulate install script when managed updates v2 are off (#52603)
* Modulate install script when managed updates v2 are off

* fixup! Modulate install script when managed updates v2 are off

* Address Stephen's feedback
2025-02-28 01:59:12 +00:00
Hugo ShakaandEdoardo Spadolini 0239d3481b Make node install scripts install Teleport via teleport-update (#52226)
* Make the node install script use teleport-update

* Apply suggestions from code review

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>

* Fix curl args + address bash exec comments

---------

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>
2025-02-26 17:26:39 +00:00
Hugo Shaka 2ae8e3c1db Allow prerelease Teleport to install official artifacts (#52444) 2025-02-25 16:02:52 +00:00
Hugo Shaka eadbe2d8a1 Refactor node-join script to take safer options and reuse install option logic (#52196)
* Add install script using teleport-update and oneoff.sh

* Refactor node-join script to take safer options and reuse install option logic

* GoDoc + make functions private

* Address edoardo's feedback
2025-02-21 18:44:03 +00:00
Hugo Shaka 59ded01eb3 Add install script using teleport-update and oneoff.sh (#52155) 2025-02-21 15:22:43 +00:00
Gus Rivera 333f6147fd Fixing node-join script for macos to support app bundles (#50188)
* Fixing node-join script for macos to support app bundles

* Removing some test overrides

* The node-join script now only install server bin to macOS
2025-01-23 19:47:48 +00:00
Paul Gottschling 70d70a2d60 Fix outdated docs URLs (#50923)
- Web UI source
- README
- lib
- api

Do not touch docs URLs in test case names or test data where we don't
expect users to navigate to the URLs.
2025-01-16 18:17:35 +00:00
Marco Dinis dd044f1c4f Teleport Install scripts: use /etc/apt/keyrings/ when adding Teleport's public key for DEB packages (#50273)
* Teleport Install scripts: use `/etc/apt/trusted.gpg.d/` for DEB packages

* use etc apt keyrings for storing the keys
2025-01-15 15:14:51 +00:00
Lisa Kim 4ee850ee08 Pass join token suggestedLabels to app server labels during install.sh (#50720)
* Allow adding app server labels from join token for install.sh

* Address CRs

* Reduce label yaml space, improve test
2025-01-09 23:14:45 +00:00
Vadym Popov 0b1e410755 Add check to installation script when we copy files from tarball (#50368) 2024-12-18 16:34:01 +00:00
Vadym Popov 9f3ef20456 [teleport-update] Add teleport-update to build and archive (#48839)
* Add teleport-update to build and archive

* Add teleport-update to install scripts

* Add build flags without buildmode pie

* Add helper message for install.sh script

* Exclude teleport-update from darwin platform

* Add teleport-update to rpm and deb packages

* Remove teleport-update from deb, rpm packages
Add comment for the buildflags
2024-11-13 22:03:03 +00:00
Marco Dinis b5cef2498f NodeJoin Script: improve clean up message when using package manager (#48743)
When re-running the node join script, the script refused to continue
because it detected teleport already on the system.
The script had a couple of instructions that removed teleport from the
system.
One of the steps is the removal of the teleport binary.
However, it would recommend the removal of the binaries even for systems
that had package managers. This fails because, even if the binaries
(teleport, tsh, tctl) are removed, the package manager will still refuse
to install teleport again because it was not removed from the package
manager database.

This PR changes the script, so that if it detects a package manager, it
will instead ask the user to remove the teleport package and not
directly removing the binaries.
2024-11-13 09:00:47 +00:00
Gavin Frazar d88e549070 use pre-release cdn and image repo for aws integration flows (#47474) 2024-10-11 22:05:24 +00:00
Zac Bergquist c8b364efb1 Set min macOS version to 11 (#46461)
Go 1.23 has a hard requirement of macOS11 Big Sur or later.
2024-10-04 23:31:00 +00:00
Zac Bergquist 14c094ac99 Remove desktop discover scripts for v17 (#46226)
The UI was removed in v16 but the endpoints were kept for one
major release for compatibility.
2024-09-10 19:26:52 +00:00
Zac Bergquist 4da0d1013f discover: generate config with --silent flag (#44597)
When you add a node through the discover flow, we use the
teleport node configure command to generate a configuration file,
and then we actually start Teleport.

By default, the configure command prints some hint messages telling
the user to run teleport start, but this is not necessary in the discover
flow since we start it up for you.

The --silent command was added to solve this, but we never went back
and updated the install script to use it.

Closes #29518
2024-07-24 19:41:09 +00:00
Marco Dinis 6573567e53 Node Join Script: add support for Rocky and AlmaLinux (#44319) 2024-07-17 15:08:54 +00:00
Marco Dinis 6b9334c3bd Script oneoff: add optional command prefix (sudo) (#43234)
* Script oneoff: add optional command prefix (sudo)

We are converting the installer script used for Server Auto Discover to
use go instead of shell script.

As an example, in EC2 Auto Discover, the script runs as `ssm-user` which
has access to using `sudo`.

This script is currently using `sudo` to change system wide
configurations (adding repos, installing packages, create file locks,
....).
In order to convert this script into go code, we must also run with
elevated privileges.

This PR changes the `oneoff` script to optionally run with a prefix.
Only `sudo` can be used as a command prefix.

* use t.cleanup and fix sudo usage when testing
2024-06-25 11:17:10 +00:00
Marco Dinis f5cdc233ee Use user directory instead of /tmp for downloading teleport (#43029)
Some systems have a very restricted size in `/tmp`.
When doing some tests, we found out that Amazon Linux 2023 EC2 instance
only has 475MB (possibly related to using an instance with 1GB of RAM?),
and that's not enough to download and uncompress the tarball.
We tried to optimize that and only extract the `teleport/teleport`
binary, but there's not enough space for that as well.

So, instead, we are now storing the teleport binary in the user's cache
dir.

Another change is that we also remove the created folder when the script
exits.
2024-06-19 14:42:11 +00:00
Marco Dinis a6a7683068 Allow arguments for the oneoff script (#42621)
The oneoff script downloads teleport and runs a teleport command.
In order to use the oneoff script for Server Auto Discover we must allow
it to receive a token as an argument.
You can see how the script is meant to be executed:
lib/cloud/aws/ssm_document.EC2DiscoverySSMDocument
2024-06-12 15:18:59 +00:00
Marco Dinis 508109b81a Use sh in oneoff script (#42633)
oneoff script intends to be as simple and compatible as possible.
Using `sh` allows us to be even more compatible, not only with more
specific systems but also allows it to be used by the teleport discovery
script (which uses `/bin/sh <my-script.sh`)
2024-06-11 07:08:28 +00:00
Zac Bergquist 631c1fcae2 Update min macOS version to 10.15 (#42017)
Teleport 16 will be built with Go 1.22, which requires macOS 10.15
(Catalina) or later.
2024-05-28 14:59:31 +00:00
Marco Dinis 5b411d73a5 Join Script: add apt repo for Ubuntu 24.04 (#40960) 2024-05-15 15:03:27 +00:00
Zac Bergquist d22fdcf70e docs: remove unnecessary dsacls command for AD service account (#40089)
This command fails and was mistakenly left behind during some
Teleport 15 updates.

Closes #39289
2024-04-02 13:36:28 +00:00
Steven Martin 2843c34def update web install node script to use cdn.teleport.dev for downloads (#37206)
* update web install node script to use cdn.teleport.dev signature links

* update url tests to use cdn.teleport.dev
2024-01-24 23:28:08 +00:00
Zac Bergquist 2a7c138e63 desktop access: stop writing to the NTAuth store (#35578)
In the original releases of desktop access (circa Teleport 8),
Teleport itself authenticated to LDAP with a password. As a result,
Teleport could publish its own certificate authority to the Windows
NTAuth store, which made one less step for the user to do when
setting up Teleport.

Some time later, we removed the password authentication, and Teleport
started using a Teleport-issued certificate to connect to LDAP. A
side effect of this change was that Teleport could no longer
authenticate to LDAP and publish its own CA, because the cert-based
authentication could not succeed until the CA was already trusted.
At this time, it became necessary to write Teleport's CA to the NTAuth
store at installation time.

Ever since then, Teleport has been periodically publishing its CA to
NTAuth, even though it's guaranteed to be there already.

This commit removes the periodic write operation and updates the
docs to use more restrictive permissions on the Teleport service
account. The installation process remains exactly the same.
2024-01-05 17:33:30 +00:00
Marco André Dinisandrosstimothy 27dd7fcfd8 JoinScript: add DiscoveryService installation method (#36286)
* JoinScript: add DiscoveryService install method

* Update lib/web/join_tokens.go

Co-authored-by: rosstimothy <39066650+rosstimothy@users.noreply.github.com>

* Update lib/web/join_tokens_test.go

Co-authored-by: rosstimothy <39066650+rosstimothy@users.noreply.github.com>

---------

Co-authored-by: rosstimothy <39066650+rosstimothy@users.noreply.github.com>
2024-01-05 15:00:45 +00:00
caec5f35cf Ironrdp (#26874)
* adds ironrdp client and has it connect, alongside rdp-rs

* Integrates IronRDP client into the TDP png-response system. Instead of sending back chunks of the screen, its sends the full screen every time, and this is my running hypothesis for the current sticking point: a "Maximum call stack size exceeded" from the tdp client in the react app

* Changes arrayBufferToBase64 to use reduce, which fixes the "Maximum call stack size exceeded" bug

* removes convert_bgra_to_rgba which isn't needed with the bitmaps being produced by IronRDP

* Adds support for updating only a specific image region

* removes mistaken read_rdp_output_inner call from connect_rdp_inner

* Adds support for mouse input. I believe this code has race conditions for client.write_frame though this requires more research.

* Patches things up with the new IronRDP structure

Requires some modifications to IronRDP, see the corresponding commit hash
for IronRDP in lib/srv/desktop/rdp/rdpclient/Cargo.toml.

Started getting call stack overflows when manual testing again, but I'm
going to ignore those for now and focus on the version of this architecture
that passes the remoteFX encoded messages over TDP.

* Adds RemoteFX Frame to the backend

* Proof of concept for integrating a wasm module into the frontend

Building the wasm module still needs to be done manually, this was
just to get to a point where tools are configured and it can be successfully
called in both dev and prod modes.

Required that I comment out "default-src 'self'" in the CSP, this will
need to be figured out later.

We're also using a package called vite-plugin-wasm-pack whereas ironrdp
uses vite-plugin-wasm. I'm not sure why, I'm going to look into this and
swap out to vite-plugin-wasm if possible.

* Swaps out vite-plugin-wasm-pack for vite-plugin-wasm and adds build-wasm script to the teleport package.json.

vite-plugin-wasm-pack looks relatively unmaintained in comparison
to vite-plugin-wasm-pack.

build-wasm script is needed to build the wasm binary before calling vite [build]

* Adds backend structure for RPC PoC

Untested as of yet and it isn't pretty, but this more or less imitates the
RPC approach we have for directory sharing.

* hack solution which calls everything 'static. THIS IS VERY UNSAFE, WE SHOULD DO SOMETHING ELSE

* Gets the full display working end to end
with a particular commit of IronRDP. Unfortunately this commit is now
well out of date, and IronRDP had some bugs that were preventing RemoteFX
frames from being sent back.

* Full display working end to end with the updated IronRDP

* updates init_wasm_log to enable logging in the console

* updates hardcoded io_channel_id and user_channel_id

* Uses specific IronRDP sub-crates (i.e. ironrdp-session, ironrdp-tokio, etc.) rather than relying on whatever is re-exported from the ironrdp sub-crate itself

* Gets FastPathFrameResponse up to speed and the PoC is now working

* deletes all the rpc stuff which it turns out we don't need

* more cleanup including consolidating the FastPathFrame message between wasm and js, adding some comments

* Updates the documentation string for top level Client in lib.rs

* Removes hardcoded rdp server address, screen size, and username

* Swaps to online IronRDP repo

* Updates the TDP RFD with new messages
renaming them to be precise.

* remove hardcoded ip

* creates asRustBackedSlice

* removing some old todos

* Add cleanup for wasm-pack build artifacts to make clean

* Fix wasm in production builds (#27428)

* Converts the default Content-Security-Policy representation to a map
which makes it easier to programmatically add-to/overwrite the defaults
for special cases.

Also adds tests for the various custom CSPs.

* Alphabetize CSP directives for ease of testing/debugging in the future

* makes maps more easily composable

* removes commented code, and topLevelAwait() which was causing production builds to break

* Adds 'wasm-unsafe-eval' to the script-src section of the Content-Security-Policy
when a desktop session's url is detected.

The app already enforces no caching via the Cache-Control, Pragma, and
Expires headers (SetNoCacheHeaders), which means that any time the app
is requested in a new tab, the browser will always request a new index.html
which can be sent back with a new Content-Security-Policy header.

Since the only way to get to a desktop session is to either
click a link in the app which opens a new tab, or to open a new tab and
navigate to the url manually (this differs from most components, which can
be navigated to without a page reload using React Router), we can reliably
check each index.html request for a characteristic desktop session url path,
and only include the 'wasm-unsafe-eval' directive when strictly necessary
(in the spirit of the principle of least privilege).

* Removes vite-plugin-top-level-await from package.json

* moves regex to global so that it only need be compiled once

* CR fixes
updates Cargo.lock
removes commented feature flag
removes -framework SystemConfiguration
fixes makefile comment

* unsafe.SliceData

* fixes phrasing

* changes to docstring

* changes handle_tdp_fast_path_response to handle_tdp_rdp_response_pdu
so that its name is in line with its definition in RFD 0037 and
adds a more descriptive docstring.

* small fixes to comments

* preallocate RDPFastPathPDU Encode buffer

* updating comments

* Adds a detailed discussion of the Go/Rust Interface to the README (#29762)

* Aligns the codebase with the Go/Rust interface principles in the README (#29764)

* Move client functionality into Client (#29765)

* Adds the RDP Channel IDs TDP message (#27514)

* Refactoring `rdpclient` (#29766)

* Ironrdp recording playback (#28228)

* httplib.SetIndexContentSecurityPolicyWithWasm for recordings as well as desktop sessions so that the ironrdp wasm client can be used for recording playback

* Adds desktopplayback path to websocket proxy definitions so that it can be used with the dev server

* adds tdp.TypeRDPFastPathPDU as a tdp message to be recorded

* With this commit, recordings can be played back with the FastPathProcessor

Refactors tdp Client and subclass PlayerClient
such that now the classes are always constructed the same way,
and the internal representation of the screen size (the FastPathProcessor)
is either:

1. Created upon the call to Client.connect(spec) when spec is !undefined.
This is the case when the Client is being used for a desktop session.

2. Created when a client screen spec is received from the server. This is
the case when PlayerClient is being used for playback.

* Switches from sending the width/height via ur parameter string
to sending it via the client screen spec tdp message.

* changes tdpCli* to client* and adds a canvas* to the canvas related functions

* Static tokio (#30066)

* Beginnings of RdpdrBackend integration (#32814)

* Adds handling for the EstablishContextCall (#32971)

* Adds support for `ListReadersCall` and `ListReadersReturn` (#33004)

* Adds support for `GetStatusChangeCall`/`GetStatusChangeReturn` (#33056)

* Adds support for ConnectCall and ConnectReturn (#33136)

* Better error handling (#32925)

This change removes couple of unwrap that could cause panics on the Rust side and prevents panics from invalid cgo handle on the Go side.
It also sends error message from IronRDP to UI and cleans up a little final sequence of closing various goroutines in case of error or sessions end.

* Adds support for `HCardAndDispositionCall` with `ScardIoCtlCode::BeginTransaction` (#33192)

* `TransmitCall` and `TransmitReturn` (#33282)

* `StatusCall` and `StatusReturn` (#33284)

* `ReleaseContext` and refactor `handle_scard_call` (#33434)

* IronRDP clipboard sharing (#33335)

This change adds clipboard sharing to our IronRDP migration using ironrdp_cliprdr crate with out TDP-based backend (reused from rdp-rs times)

* Adds EndTransaction, Disconnect, Cancel, and IsValidContext (#33612)

* Adds support for `GetDeviceTypeId` (#33613)

* Adds support for `ReadCacheW` (#33618)

* `WriteCacheW` (#33620)

* Smartcard Login (#33712)

* `GetReaderIcon` (#33779)

* Update to IronRDP latest commit

* Removes a bunch of old deprecated code (including `rdp-rs`) (#33786)

* Pipes in `SharedDirectoryAnnounce` (#33911)

* Use tokio-boring for TLS upgrade (#33900)

This change switches TLS upgrade in our new RDP approach to tokio-boring in FIPS-compliant builds.
It also adds runtime check for FIPS mode.

Tested locally in custom Docker image.

* Update sspi (#34558)

* Break up rdpdr.rs, add support for the first directory sharing pdus (#34009)

* Adds support for `SharedDirectoryCreateRequest` and `SharedDirectoryCreateResponse`. (#34011)

* `SharedDirectoryDeleteRequest` and `SharedDirectoryDeleteResponse` (#34051)

* remove leftover code

* Server drive query information request (#34082)

* Rdp client refactor (#34122)

* Add handling for `DeviceCloseRequest` (#34139)

* Updates to `IronRDP` latest (#34744)

* Updates to IronRDP latest with a slightly different API

* remove defunct comment

* `ServerDriveQueryDirectoryRequest` and `SharedDirectoryListRequest/Response` (#34746)

* `ServerDriveQueryVolumeInformationRequest` and `ClientDriveQueryVolumeInformationResponse` (#34871)

* `DeviceControlRequest` (#34898)

* `Read` (#34914)

* `Write` (#34919)

* `SetInformation` (#35092)

* `LockControl` (#35146)

* Stack pr feedback and other cleanup (#35306)

* Adds desktop access websocket pattern to vite config

* Updates IronRDP to latest, removes manual context strings in favor of automatically generated (by this latest IronRDP commit) (#35392)

* Small line fixes, comment removal, changing license to AGPL

* Update Go/Rust interface section of README (#35590)

* Ironrdp manual docs (#35455)

* Remove unnecessary whitespace

* Refactor navigation paths in Active Directory documentation for clarity

Replaced textual descriptions with formatted paths using `>` symbols for better readability.

Having been subject to going through many such tutorials myself, I find this to be a more
user-friendly way of presenting the information. It's very common to need to go back and
forth between the documentation and the group policy manager, and having these paths in a
format that can catch the eye quickly is a big help. This also appears to be common practice
e.g.

- https://softwarekeep.com/help-center/how-to-enable-remote-desktop-on-windows
- https://www.helpwire.app/blog/remote-desktop-group-policy/

* Add instructions for enabling RemoteFX

* Add an optional step to the end of each GPO update subsection

This lets us point users to subsections individually without worrying
about reminding them that they need to run a `gpupdate /force` each
time (because its already right there in the subsection).

* lowercase "open"

* Updates configuration script to enable RemoteFX (#35461)

* Restructure Cargo workspace (#35591)

* Update `IronRDP` to latest, fix key log leak (#35707)

Updates IronRDP to latest with the changes necessary to keep up with the changes in https://github.com/Devolutions/IronRDP/pull/328. We select the `"rustls"` feature explicitly now, this is in line with our implicit choice of it as [the default](https://github.com/Devolutions/IronRDP/pull/325/files#diff-1f64036f3e460819b2b1e954803b7f266feca0e2787ca0614ae1253323944f59L19) before these latest changes.

Also creates a custom debug for `ScardBackend` so as to not leak `key_der` in the logs.

* Don't leak pin in the logs

* Updates CI to fix broken checks and builds caused by WASM introduction (#35401)

* removes SystemConfiguration framework (not sure why it was there).

* Updates cspell

* fixes TestSetRedirectPageContentSecurityPolicy

* Updates e ref to a currently-draft-PR ref.

* Fix per session mfa (#35902)

* Updating e-ref to tip of `master`

* dependency-review: Ignore cargo dependencies with invalid license specifications

* Updates OSS build-macos.yaml to support wasm-pack

---------

Co-authored-by: Przemko Robakowski <przemko.robakowski@goteleport.com>
Co-authored-by: Mike Jensen <mike.jensen@goteleport.com>
2023-12-20 23:21:14 +00:00
Zac Bergquist 44a6bb1933 Use pkg slices from the standard library (#35905)
Prefer the stdlib version of the experimental package.
Includes a depguard update to prevent future regressions,
as well as an e-ref update to appease depguard.

Generated with:

    $ gofmt -w -r '"golang.org/x/exp/slices" -> "slices"' . && \
        make fix-imports
2023-12-19 23:06:53 +00:00
fheinecke b178b8b732 Updated Teleport codebase to AGPL3 license (#35259)
Signed-off-by: Fred Heinecke <fred.heinecke@goteleport.com>
2023-12-01 17:48:14 +00:00
Gabriel CoradoandSTeve Huang 96ed71b2f7 Add token and database URI validation to SQL Server configure script route (#34035)
* feat(web): add token and database uri validations to sql server configure

* feat: add sql server address validation

* test: update example sql server URIs

* Update lib/web/databases_test.go

Co-authored-by: STeve (Xin) Huang <xin.huang@goteleport.com>

---------

Co-authored-by: STeve (Xin) Huang <xin.huang@goteleport.com>
2023-11-29 12:50:00 +00:00
Marco André Dinis c3550a24e6 OneOff Script: use ent build if cluster is Enterprise (#33061)
* OneOff Script: use ent build if cluster is Enterprise

We were always using the OSS version of teleport in the one-off scripts.

This PR changes that to pick the correct version depending on the
running version in the Proxy.

* use gzip bestspeed for compressing files
2023-10-09 13:44:30 +00:00
Lisa Kim 15e9d0e251 Check for teleport launchd before installing through join script (#32074) 2023-09-19 16:02:18 +00:00
Reed Loden b8feb63de7 Update distroless images to use Debian 12 (#31620)
https://github.com/GoogleContainerTools/distroless#debian-12

Note that the debian12 images no longer include OpenSSL, which we
don't need anyway, as we statically link our own copy for tsh and
other purposes.

Also, add Debian 12 to various places, as a supported OS.

Other included changes:
* Remove Debian 8 and 9, as they aren't receiving any security updates.
* Standardize how we select which distroless release to use.
* Ensure a specific distroless version is used instead of latest.
* Add new Amazon Linux and Oracle Linux releases to compatibility testing.
* Correct s/MacOS/macOS/ in install script.

`e` companion -- https://github.com/gravitational/teleport.e/pull/2154
2023-09-13 18:56:02 +00:00
Alex McGrath 12945167b4 Update the auto-discovery and discovery installers to support SUSE (#29360)
manually import the gpg key if we're on sles 12

Update the node-join installer

untabify
2023-08-24 15:42:08 +00:00
Marco André Dinis c2948bd40c OneOff: add success message (#30425)
When the OneOff script completes, print a success message to let the
user know that everything worked as expected and what their next action
should be.
2023-08-16 07:01:43 +00:00
Gus Luxton b8319b48b1 Add support for Amazon Linux 2023 to installer script and Discover UI (#29592)
* Add support for Amazon Linux 2023 to installer script

The installer script was hardcoded to only allow `amzn` version `2`. We have a repo for `amzn` version `2023` which works fine, so we should use that instead.

* Add Amazon Linux 2023 to discover tab

* Update snapshots
2023-07-26 18:54:45 +00:00
Marco André Dinis 4f2d9b066a DeployService IAM Configure: unescape arguments (#28807)
We were escaping the command arguments with double quotes.
It works with bash4.3+.

However, AWS CloudShell has bash 4.2 which:
>
> zz. When using the pattern substitution word expansion, bash now runs the
>     replacement string through quote removal, since it allows quotes in that
>     string to act as escape characters.  This is not backwards compatible, so
>     it can be disabled by setting the bash compatibility mode to 4.2.

http://tiswww.case.edu/php/chet/bash/CHANGES

When running this script in bash 4.2, the arguments end up being `"xyz"`
instead of `xyz`.
So, errors like this happen:
```
ERROR: operation error STS: GetCallerIdentity, https response error StatusCode: 0, RequestID: , request send failed, Post "https://sts.\"us-east-1\".amazonaws.com/": dial tcp: lookup sts."us-east-1".amazonaws.com: no such host
```

Removing the quotes means it will work on older and newer bash versions:

Demo:

```
> ./bin/teleport integration configure deployservice-iam --cluster=kimlisa.cloud.gravitational.io --name=r0mant --aws-region=us-east-1 --role=r0mant-oidc --task-role=Test+1=2,3.4@5-6_7
2023/07/07 08:04:05 TaskRole: Boundary Policy "Test+1=2,3.4@5-6_7Boundary" created.
2023/07/07 08:04:05 TaskRole: Role "Test+1=2,3.4@5-6_7" created with Boundary "arn:aws:iam::278576220453:policy/Test+1=2,3.4@5-6_7Boundary".
2023/07/07 08:04:05 TaskRole: IAM Policy "Test+1=2,3.4@5-6_7" added to Role "Test+1=2,3.4@5-6_7".
2023/07/07 08:04:05 IntegrationRole: IAM Policy "DeployService" added to Role "r0mant-oidc"
```
2023-07-12 22:11:24 +00:00
Marco André Dinis 04212d37bc Install Script: don't enable Automatic Upgrades for non-systemd systems. (#28960) 2023-07-11 21:42:06 +00:00
Marco André Dinis 37243f8fa4 Script to configure IAM for the DeployService (#28436)
* Script to configure IAM for the DeployService

* use any instead of interface{}

* fix test typo
2023-07-04 15:10:00 +00:00
Marco André Dinis 0ef626308c Teleport One Off Script (#27852)
* Teleport One Off Script

This PR creates an endpoint that returns a script.
This script does the following:
- detects the correct os/arch, downloads and extracts the teleport
  binary package
- runs teleport with arguments defined in the endpoint's query param

This will allow the Discover wizard to give bash scripts in the form of
`bash -c "$(curl ..../oneoff... )"` to the user.
The user is then asked to run those commands.

One use case for those commands is the creation of specific AWS Roles
which are then used to give Teleport extra access to other AWS Services
/ Actions.
This specific command will come in a later PR.

* remove endpoint

* disable shellcheck for go templated vars

* use bintest v3
2023-06-27 12:14:23 +00:00
Marco André Dinis 88e85fb7de Install Script: add Darwin ARM64 support (#26498) 2023-05-18 13:14:44 +00:00
Marco André Dinis 328182ee7b Install Node Script: respect version variable (#25885)
We were always installing the latest version available even if the
requested version was different

This PR changes the installation command and the version is now pinned
to the one received in the `TELEPORT_VERSION` variable.
2023-05-16 07:02:35 +00:00
Marco André Dinis a2c4fd3f0c Install Scripts: add updater package (#25479) 2023-05-10 07:18:56 +00:00
Gabriel CoradoandIsaiah Becker-Mayer 0d885e231e SQL Server PKINIT configuration script (#24521)
* feat(web): add powershell configure script for sqlserver

* chore(web): fix license

* Update lib/web/databases.go

Co-authored-by: Isaiah Becker-Mayer <isaiah@goteleport.com>

* refactor(web): rename endpoint

---------

Co-authored-by: Isaiah Becker-Mayer <isaiah@goteleport.com>
2023-05-02 17:31:16 +00:00