Giter Site home page Giter Site logo

field-workshops-vault's Introduction

HashiCorp Vault Field Workshops

All HashiCorp field workshops focused on Vault should be placed in this repository. Similar field workshop repositories exist for these HashiCorp solutions:

Additionally, field workshops focused on more than one HashiCorp solution can be found in the field-workshops-hashistack repository.

Slides

The only current workshop is Introduction to Vault with these slides: https://hashicorp.github.io/field-workshops-vault/slides/multi-cloud/vault-community/#1

The slides for these workshops should be created using Remark and should be placed under the docs/slides directory. This directory is organized by cloud and then by workshop. If a workshop targets a single cloud, its slides should be placed in a directory under that cloud's directory (aws, azure, or gcp). If a workshop can be used with multiple clouds, its slides should be placed in a directory under the multi-cloud directory.

Please do NOT place any slides or any other content directly inside the docs directory.

Standard assets (logos, backgrounds, css, fonts, and js) used by workshop slides are contained in a separate repository, field-workshops-assets.

When creating slides for a new workshop, you will need to do the following:

  1. Create a new workshop directory under the appropriate directory as discussed above.
  2. Copy docs/index.html to your new workshop's directory. (But don't create a sub-directory called docs under it.)
  3. If you want to create a single part slide show, then create a file in your directory called index.md and add all your slides to it.
    1. You can copy content from docs/index.md to get started with a title slide and a few regular slides.
    2. Note that the speaker notes in that file have some useful pointers for creating Remark slide shows.
  4. If you want to create a multi-part slide show, then do the following:
    1. Create multiple files such as vault-1.md, vault-2.md, and vault-3.md with corresponding HTML files such as vault-1.html, vault-2.html, and vault-3.html that should be copies of index.html.
    2. In each of the new HTML files, replace index.md with the name of the corresponding MD file in the sourceURLs list. For instance, use vault-1.md in vault-1.html.
    3. Replace index.md in the sourceURLs list of your workshop's copy of index.html with a comma-delimited list of your MD file names. So, with the 3 MD files listed above, you would specify sourceURLs like this:
    sourceUrls = [
       'vault-1.md',
       'vault-2.md',
       'vault-3.md'
       ]
    

Whether you create a single-part or multi-part slide show, users will be able to access all of your slides with a URL like https://hashicorp.github.io/field-workshops-vault/slides/aws/vault-community/index.html, but they can leave off index.html.

If you create a multi-part slide show, users will also be able to access each part of your slide show separately at URLs like these:

Each workshop should give the full link (or links) to that workshop's slides in one of its first few slides.

Instructor Guides

The instructor guides for these workshops should be created as Markdown files and should be placed in the instructor-guides directory and have names like <cloud>_<workshop_name>_INSTRUCTOR_GUIDE.md where <cloud> is the cloud the workshop targets and <workshop_name> is the name of the workshop. But if the workshop is intended for use with multiple clouds, <cloud> should be omitted.

Labs (Instruqt Tracks)

The labs for these workshops should be created using Instruqt Tracks. Each track should be placed in its own directory directly underneath the instruqt-tracks directory. Doing this allows each track to be used by multiple workshops within this repository.

We currently have 3 standard Instruqt tracks for the Vault Workshop:

There are also 3 optional tracks:

field-workshops-vault's People

Contributors

andrew-klaas avatar brainstarr avatar calebalbers avatar cassidy1 avatar dahlke avatar dependabot[bot] avatar eyenx avatar flamacue avatar great-stone avatar grove-mountain avatar hashicorp-copywrite[bot] avatar hashicorp-tsccr[bot] avatar hc-github-team-es-release-engineering avatar jameshashicorp avatar jennamwong avatar jsp-hashicorp avatar kevin-loehfelm avatar lucymhdavies avatar nickyoung-hashicorp avatar omkensey avatar pedrococa avatar rberlind avatar russparsloe avatar sasano63 avatar syedquadri7 avatar thomashashi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

field-workshops-vault's Issues

Unable to update records, Webapp crashes

It seems there is an issue when updating records.

Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

On the "Vault CLI" where the python app is started:

In Main...
2020-04-03 08:31:58,606 - INFO - app - - Vault is enabled...
2020-04-03 08:31:58,607 - WARNING - db_client - init_vault - Connecting to vault server: http://localhost:8200
2020-04-03 08:31:58,614 - INFO - app - - using dynamic credentials from Vault: v-token-workshop-a-etTsah3hTPDzp with password A1a-ej01uMi4QBEFjEGA
2020-04-03 08:31:58,680 - INFO - db_client - init_db - Preparing database my_app...
2020-04-03 08:31:58,680 - INFO - db_client - init_db - Preparing customer table...
2020-04-03 08:31:58,681 - INFO - app - - Starting Flask server on 0.0.0.0 listening on port 5000

  • Serving Flask app "app" (lazy loading)
  • Environment: production
    WARNING: This is a development server. Do not use it in a production deployment.
    Use a production WSGI server instead.
  • Debug mode: off
    2020-04-03 08:31:58,682 - ERROR - root - - There was an error starting the server: [Errno 98] Address already in use
    2020-04-03 08:32:04,110 - INFO - werkzeug - _log - 10.96.16.130 - - [03/Apr/2020 08:32:04] "GET / HTTP/1.1" 200 -
    2020-04-03 08:32:05,321 - INFO - werkzeug - _log - 10.96.16.130 - - [03/Apr/2020 08:32:05] "GET /update HTTP/1.1" 200 -
    2020-04-03 08:32:16,745 - ERROR - db_client - encrypt - There was an error encrypting the data: 'list' object has no attribute 'encode'
    2020-04-03 08:32:16,746 - ERROR - db_client - encrypt - There was an error encrypting the data: 'list' object has no attribute 'encode'
    2020-04-03 08:32:16,746 - ERROR - db_client - encrypt - There was an error encrypting the data: 'list' object has no attribute 'encode'
    2020-04-03 08:32:16,746 - ERROR - db_client - encrypt - There was an error encrypting the data: 'list' object has no attribute 'encode'
    2020-04-03 08:32:16,747 - ERROR - app - log_exception - Exception on /update [POST]
    Traceback (most recent call last):
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
    File "/usr/local/lib/python3.5/dist-packages/flask/_compat.py", line 39, in reraise
    raise value
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functionsrule.endpoint
    File "app.py", line 105, in update_submit
    records = update_customer()
    File "app.py", line 71, in update_customer
    new_record = dbc.update_customer_record(customer)
    File "/home/vault/transit-app-example/backend/db_client.py", line 218, in update_customer_record
    self._execute_sql(statement, cursor)
    File "/home/vault/transit-app-example/backend/db_client.py", line 118, in _execute_sql
    cursor.execute(sql)
    File "/usr/local/lib/python3.5/dist-packages/mysql/connector/cursor.py", line 569, in execute
    self._handle_result(self._connection.cmd_query(stmt))
    File "/usr/local/lib/python3.5/dist-packages/mysql/connector/connection.py", line 590, in cmd_query
    result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
    File "/usr/local/lib/python3.5/dist-packages/mysql/connector/connection.py", line 478, in _handle_result
    raise errors.get_exception(packet)
    mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '['4']' at line 3
    2020-04-03 08:32:16,749 - INFO - werkzeug - _log - 10.96.47.112 - - [03/Apr/2020 08:32:16] "POST /update HTTP/1.1" 500 -
    2020-04-03 08:32:17,807 - INFO - werkzeug - _log - 10.96.46.46 - - [03/Apr/2020 08:32:17] "HEAD /update HTTP/1.1" 200 -
    2020-04-03 08:32:17,844 - ERROR - db_client - encrypt - There was an error encrypting the data: 'list' object has no attribute 'encode'
    2020-04-03 08:32:17,844 - ERROR - db_client - encrypt - There was an error encrypting the data: 'list' object has no attribute 'encode'
    2020-04-03 08:32:17,845 - ERROR - db_client - encrypt - There was an error encrypting the data: 'list' object has no attribute 'encode'
    2020-04-03 08:32:17,845 - ERROR - db_client - encrypt - There was an error encrypting the data: 'list' object has no attribute 'encode'
    2020-04-03 08:32:17,845 - ERROR - app - log_exception - Exception on /update [POST]
    Traceback (most recent call last):
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
    File "/usr/local/lib/python3.5/dist-packages/flask/_compat.py", line 39, in reraise
    raise value
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functionsrule.endpoint
    File "app.py", line 105, in update_submit
    records = update_customer()
    File "app.py", line 71, in update_customer
    new_record = dbc.update_customer_record(customer)
    File "/home/vault/transit-app-example/backend/db_client.py", line 218, in update_customer_record
    self._execute_sql(statement, cursor)
    File "/home/vault/transit-app-example/backend/db_client.py", line 118, in _execute_sql
    cursor.execute(sql)
    File "/usr/local/lib/python3.5/dist-packages/mysql/connector/cursor.py", line 569, in execute
    self._handle_result(self._connection.cmd_query(stmt))
    File "/usr/local/lib/python3.5/dist-packages/mysql/connector/connection.py", line 590, in cmd_query
    result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
    File "/usr/local/lib/python3.5/dist-packages/mysql/connector/connection.py", line 478, in _handle_result
    raise errors.get_exception(packet)
    mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '['4']' at line 3
    2020-04-03 08:32:17,848 - INFO - werkzeug - _log - 10.96.46.46 - - [03/Apr/2020 08:32:17] "POST /update HTTP/1.1" 500 -
    2020-04-03 08:32:18,911 - INFO - werkzeug - _log - 10.96.45.246 - - [03/Apr/2020 08:32:18] "HEAD /update HTTP/1.1" 200 -
    2020-04-03 08:32:18,952 - ERROR - db_client - encrypt - There was an error encrypting the data: 'list' object has no attribute 'encode'
    2020-04-03 08:32:18,953 - ERROR - db_client - encrypt - There was an error encrypting the data: 'list' object has no attribute 'encode'
    2020-04-03 08:32:18,953 - ERROR - db_client - encrypt - There was an error encrypting the data: 'list' object has no attribute 'encode'
    2020-04-03 08:32:18,953 - ERROR - db_client - encrypt - There was an error encrypting the data: 'list' object has no attribute 'encode'
    2020-04-03 08:32:18,954 - ERROR - app - log_exception - Exception on /update [POST]
    Traceback (most recent call last):
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
    File "/usr/local/lib/python3.5/dist-packages/flask/_compat.py", line 39, in reraise
    raise value
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
    File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functionsrule.endpoint
    File "app.py", line 105, in update_submit
    records = update_customer()
    File "app.py", line 71, in update_customer
    new_record = dbc.update_customer_record(customer)
    File "/home/vault/transit-app-example/backend/db_client.py", line 218, in update_customer_record
    self._execute_sql(statement, cursor)
    File "/home/vault/transit-app-example/backend/db_client.py", line 118, in _execute_sql
    cursor.execute(sql)
    File "/usr/local/lib/python3.5/dist-packages/mysql/connector/cursor.py", line 569, in execute
    self._handle_result(self._connection.cmd_query(stmt))
    File "/usr/local/lib/python3.5/dist-packages/mysql/connector/connection.py", line 590, in cmd_query
    result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
    File "/usr/local/lib/python3.5/dist-packages/mysql/connector/connection.py", line 478, in _handle_result
    raise errors.get_exception(packet)
    mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '['4']' at line 3
    2020-04-03 08:32:18,956 - INFO - werkzeug - _log - 10.96.16.130 - - [03/Apr/2020 08:32:18] "POST /update HTTP/1.1" 500 -

File "app.py", line 71, in update_customer
new_record = dbc.update_customer_record(customer)
File "/home/vault/transit-app-example/backend/db_client.py", line 218, in update_customer_record
self._execute_sql(statement, cursor)
File "/home/vault/transit-app-example/backend/db_client.py", line 118, in _execute_sql
cursor.execute(sql)
File "/usr/local/lib/python3.5/dist-packages/mysql/connector/cursor.py", line 569, in execute
self._handle_result(self._connection.cmd_query(stmt))
File "/usr/local/lib/python3.5/dist-packages/mysql/connector/connection.py", line 590, in cmd_query
result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
File "/usr/local/lib/python3.5/dist-packages/mysql/connector/connection.py", line 478, in _handle_result
raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '['4']' at line 3
2020-04-03 08:32:18,956 - INFO - werkzeug - _log - 10.96.16.130 - - [03/Apr/2020 08:32:18] "POST /update HTTP/1.1" 500 -

[2]+ Done python3 app.py

Update Vault version in vault-basics track

The vault-basics track is shipping with vault 1.9. This a very old version, old enough that the CLI is missing some options referenced in the public documentation (e.g. -mount).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.