Jenkins: Access global passwords in powershell

前端 未结 2 525
有刺的猬
有刺的猬 2020-12-08 08:40

I am having trouble accessing the jenkins global password as an environment variable in powershell. I have done the following. Not sure what else I am missing.

    <
2条回答
  •  生来不讨喜
    2020-12-08 09:00

    Don't confuse EnvInject plugin and Credentials Binding plugin. The two do quite different things, however both allow the manage passwords globally, yet differently.

    EnvInject way

    • Manage Jenkins -> Configure System
    • Under Global Password
      1. Click Add.
      2. Enter name (of environment variable) and password.
    • Job -> Configure
    • Under Build Environment
      1. check Inject passwords to the build as environment variables.
      2. Check Global passwords.
      3. Check Mask password parameters.

    Credentials Binding way

    • Manage Jenkins -> Manage Credentials
      1. Click Add Credentials (without domain).
      2. Select Username with password OR Secret text.
      3. Enter Username and Password OR Secret.
    • Job -> Configure
    • Under Build Environment
      1. Check Use secret text(s) or file(s).
      2. Under Bindings, click Add.
      3. Select Username and password OR Secret text.
      4. Enter Variable name that you want to hold your credentials value.
      5. Select Specific credentials radio button.
      6. Select your configured credentials from the drop-down

    In your Powershell

    • Access these as you would any other environment variable:
      $env:VAR_NAME
      where VAR_NAME is the environment variable name (i.e. step 2 from EnvInject way, or step 4 from Credentials Binding way)

    Appendix

    EnvInject vs Credentials Binding

    • EnvInject passwords will show encrypted in list of environment variables.
    • EnvInject passwords will show starred (*****) in console output.
    • EnvInject passwords use the same variable name as the global configuration, so you have to remember that global variable name.
      |
    • CB passwords are shown plain text in list of environment variables.
    • CB passwords are not starred in console output.
    • CB passwords can be bound to any variable name you want in the job from a dropdown, so you don't have to remember that global variable name.
      |
    • Credentials Binding is really more for biding credential files, like certificates and keys, rather than password values.

    Username with Password vs Secret Text.

    • The former is available in the form username:password.
    • The latter is just secret.

提交回复
热议问题