Chef FATAL: IndexError: string not matched

Chef attributes are “Mash” type.

From the Ruby Doc: “Mash allows you to create pseudo-objects that have method-like accessors for hash keys.” Mash is inherited from Hash.

Attributes can hold any data type, but we need to make sure the type does not change as we create more attributes.

In this example we change the type of the attribute from string to Mash, and Chef throws the error:

FATAL: IndexError: string not matched

# ['level1'] is a string type and contains the string 'value1'
default['level1'] = 'value1'

# The type of ['level1'] changed to a Mash and contains the nested Mash ['name2'] 
default['level1']['name2'] = 'value2'

The solution is, keep the number of levels the same

# ['level1'] is a Mash type and contains the nested Mash ['name1']
default['level1']['name1'] = 'value1'

# ['level1'] is till a Mash type and contains the nested Mash ['name2'] 
default['level1']['name2'] = 'value2'

Get a refund for DMV vehicle registration renewal late payment penalty

If you have never received the vehicle registration renewal notice from the DMV and you have to pay a penalty

aws: command not found

When we want to execute AWS CLI commands to create tags, add AWS keys on AWS instances with the AWS Chef cookbook, first, we need to install the AWS CLI.

On Linux the following lines complete the installation

  bash "install_aws_cli" do
    code <<-EOF
      curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
      unzip -o awscliv2.zip
      # Install AWS CLI and create a symbolic link to it at /usr/bin, otherwise the rest of the AWS CLI calls fail.
      sudo ./aws/install -b /usr/bin --update
    EOF
    not_if 'which aws'
  end

Make sure you use the -b /usr/bin option to instruct the installer to create a symbolic link at /usr/bin

The Amazon recommended -b /usr/local/bin location only works on Amazon Linux and Ubuntu. On CentOS 7 and Red Hat 7 (RHEL7) we get the error message when the aws cookbook is executed

aws: command not found

Change or reset the user password if you cannot logon

I have found an interesting article by Raymond on how to reset the password of your Windows computer even if you cannot log in.

Change Or Reset User Password If You Cannot Logon

For the last method, you will need a bootable USB drive to start your computer. See my article Install Windows 10 from a USB drive on how to create the bootable USB media.

Another suggestion using the bootable media is at I cannot login after Windows 10 update, says “password is incorrect”

Speed up your Windows computer

Windows executes an application every day to check the compatibility of the programs on your computer. Microsoft Compatibility Appraiser runs randomly between 3 am and 5 am in the morning, and in the first 2 hours when you turn on your computer. It can use 30 – 50 % of the CPU slowing down other applications.

To disable it

  • Start the Task Scheduler
  • In the Task Scheduler navigate to Task Scheduler Library, Microsoft, Windows, Application Experience
  • Disable the Microsoft Compatibility Appraiser scheduled task

Transfer streets from maps to Cities: Skylines using transparent film

I have used this fun, but very time consuming “analog” method before discovering the Image Overlay 2 mod described in Transfer streets to your city in Cities: Skylines using a PNG image file

Cities: Skylines is a great environment to build scale models of real cities. In this example, we will transfer the Pacific Electric Railway map of the Los Angeles area from 1947 to the Los Angeles area map by macmcginty. Once you subscribe to the Los Angeles map in the Steam Workshop, the map appears in your map list in Cities: Skylines as “New Map”.

The web page at https://www.pacificelectric.org/pacific-electric/maps/1947-pacific-electric-system-map/ contains the link to the high-resolution scan of the map in PDF format. We can use a Sharpie permanent marker and clear plastic sheets, or Snagit and a printer to transfer the street map to transparent film. We will also need blue painters tape to safely attach the transparencies to the frame of the computer screen.

Determine the zoom scale to use for the Areas view

  • First, open the PDF file in Acrobat Reader to the able to switch out to Windows from the game
  • Start Cities: Skylines
  • Open the map in Cities: Skylines
  • Select the Areas view
  • Measure the distance of two map features in the Areas view
  • Use Alt-Tab to switch to the Acrobat Reader
  • Press CTRL-L for full-screen view
  • Press CTRL-Y to set the zoom scale. Adjust the number to get the same distance of the two features on the PDF map, and write down the number (in my case60 %).

Determine the zoom scale for the edit view

  • In Cities: Skylines press ECS to get back to the edit view
  • Zoom all the way out with the mouse wheel
  • Scroll to the top of the view and set the map to horizontal by holding the middle button (wheel) and moving the mouse left and right
  • Set the tilt to zero by pressing the R key
  • Measure the distance between two objects
  • Switch back to Acrobat Reader and follow the steps above to determine the zoom scale (in my case 322%).

Transfer reference points to the game

First, we will transfer reference points to the game to be able to align the enlarged street layout of the urban areas.

By hand with permanent marker

You can use transparent film and Sharpie permanent marker to transfer the layout first to the film by hand and draw the streets later in the game.

  • Open the map in Cities; Skylines
  • Select the Areas view
  • With blue painter’s tape attach a transparent film to the computer screen.
  • With Sharpie draw the outline of the city and some terrain features to be able to align the film with the PDF map.
  • Switch to Acrobat Reader, and set the already determined zoom scale for the Areas view (in my case60 %)
  • Draw reference points on the transparent film

With printer

We can buy transparent laser or inkjet printable film to transfer the layout of the streets. Make sure to select the correct one for your printer type. If your printer is capable of printing on legal size, 8-1/2″ x 14″ paper, buy that size film, as it will provide a larger area to work with, and it better matches the aspect ratio of the widescreen computer monitors.

In this example, we will use Snagit to capture and print the street map to the transparent film, but you can use any screen capture and graphics program to do that.

  • Open the street map in Acrobat Reader
  • Press CTRL-L for full-screen view
  • Press CTRL-Y to set the zoom scale you have determined above for the Areas view (in my case 60%).
  • Scroll to the view that shows the same area as the region in Cities:Skylines
  • Capture the full screen with Snagit or any other application
  • Open the captured image

Determine the necessary print scale to match the image size on your screen

  • Print the captured image on paper with 100 % scale
  • Measure the distance between two reference points on your screen and on the paper
  • Divide the measured distance on the screen by the measured distance on the paper to get the correct scale to match the screen size on the printout. (0.75 means 75% print scale)
  • Set the calculated scale
  • Set the image position to left to make sure the left size of the captured image is visible on the printout
  • On the Paper tab set the orientation to Landscape
  • Print one more copy on paper to verify the correctness of the determined scale

Print the Areas view

  • On the printer properties window set the
    • paper source to the Rear Paper Feed Slot
    • paper size of the transparency film (legal)
    • orientation to landscape
    • paper type to Premium Presentation Paper Matte
    • If your printer driver has the functionality save the settings as a preset for the future.
  • If the print preview indicates two pages, crop the image to fit on one sheet (in my case the max image height is 1050 pixels)

Transfer some terrain features to the game

  • Switch back to the game
  • With blue painter’s tape attach the transparent film to the computer screen and align it with the Areas view.
  • By switching between the editor and the Areas view, use the Wide canal tool in the Landscaping, Water Structures menu, as it is highly visible on the Areas view, to transfer the reference terrain features to the game.

Transfer the street map to the game

  • Open the street map in Acrobat Reader
  • Press CTRL-L for full-screen view
  • Press CTRL-Y to set the zoom scale you have determined above for the edit view (in my case 322%)
  • Scroll to the area of your interest

If you use Sharpie

  • With blue painter’s tape attach a transparent film to the computer screen.
  • Copy the tram lines, major streets, and train tracks with Sharpie permanent marker to the transparent film.

If you use a printer

  • Capture the view on the screen
  • Crop the image if necessary
  • Make sure the scale and print setting are correct (in my case 1050 pixels height, 75% print scale)
  • Print the captured image on the transparency film
  • Lay the print flat on the table and let the ink dry for a few minutes.

Draw the streets

  • Switch back to the game
  • In Cities: Skylines press ECS to get back to the edit view
  • Zoom all the way out with the mouse wheel
  • Scroll to the top of the view and set the map to horizontal by holding the middle button (wheel) and moving the mouse left and right
  • Set the tilt to zero (looking down vertically) by pressing the R key
  • With blue painter’s tape attach the transparent film to the computer screen.
  • Align the film with the map in the game and draw the features in the game.

Kovászos kenyér egyszerűen

Kevés munkával és mosogatással is készíthetünk jó házikenyeret. Persze, nem lesz annyira könnyű, mint az eredeti Szabadfi Szabolcs féle kenyér (Kovászos Kenyér Sütés Szabival), de így akár 1-2 naponta süthetünk finom házikenyeret. Szabi sütési lépéseit kicsit leegyszerűsítettem, hogy másra is jusson idő a kenyér készítése közben. Sütés után kenyerünk körülbelül 1200 g-os lesz.

Hozzávalók

450 g liszt (nagy kenyérhez 700 g)
321 g víz (nagy kenyérhez 500 g)
11 g só (nagy kenyérhez 18 g)
90 g kovász (nagy keyérhez 140 g) vagy 1/3 teáskanál élesztő por

A kovász elkészítését a Kovász készítés Szabival oldalon találhatjátok.

Ha követjük az alábbi időpontokat, délelőtt 10-kor összekeverjük az anyagokat, este 6-kor friss, ropogós házikenyeret kapunk.

Öszefoglaló haladóknak

Nagy kenyérhez sütés előtti este etessük fel a kovászt

Ha nagy kenyeret sütsz, és a kovász a hűtőben volt, tedd ki a konyhapultra, és várj 2 órát etetés előtt, hogy felmelegedjen.

TevékenységKis (700 g) kenyérhezNagy (1200 g) kenyérhez
Ha nagy kenyeret sütsz tegyél át kovászt egy tiszta üvegbe, a többit dobd ki.Semmi dolgod, hagyd a hűtőben éjszakára.50 g kovász
100 g liszt
80 g víz

Ha nagy kenyeret sütsz, és a kovászod jó erős, vagyis 2-3 óra alatt a kétszeresére nő szobahőmérsékleten, 1 óra múlva tedd be a hűtőbe. Ha a kovásznak több idő kell, hogy a kétszeresére nőjön, hagyd kint a konyhapulton éjszakára.

A sütés napján

Ha a kovász éjszaka a hűtőben volt, 2-3 órával dagasztás előtt tedd a konyhapultra, hogy felmelegedjen és a kétszeresére nőjön.

Kezdés időpontjaTevékenységKis (700 g) kenyérhezNagy (1200 g) kenyérhezVárakozás utána
10:00Autolízis
38-40°C-os vízzel
450 g liszt
321 g víz
700 g liszt
500 g víz
30 perc
10:30Tedd el az Anya Kovászt
10:40Dagasztás90 g kovász
11 g só
140 g kovász
18 g só
30 perc
11:301. Hajtogatás30 perc
12:002. Hajtogatás30 perc
12:303. Hajtogatás1 óra 30 perc
14:00 Tedd ki a tálat a pultra2 óra 30 perc
16:00Sütő felfűtése
250 °C-ra
30 perc
16:30Vetés
Sütés 250 °C-on
30 perc
17:00Sütés 220 °C-on20 – 25 perc
17:30Kész a kenyér

A részletes útmutató

Előző este a kovász feletetése sütéshez

Előző este a kovászt felszaporítjuk, hogy reggelre elég legyen a kenyér kelesztéséhez. Ehhez több lisztet és vizet adunk hozzá. Lásd Kovász feletetése sütéshez.

Autolízis

  • Öntsük a 38 – 40 °C vizet a dagasztótálba,
  • Szitáljuk a lisztet a víz tetejére,
  • A robotgép dagasztó fejével összekeverjük a lisztet a vízzel és 30 percig állni hagyjuk. Ez a lépés segíti a lisztet, hogy felvegye a hozzáadott vizet.

Tegyük el az Anya Kovászt

A feletetett kovászból elteszünk 50 g-ot egy tiszta üvegben, hogy a jövőben is tudjunk kenyeret sütni belőle, a maradék 140 g-ot a mai kenyér sütéséhez fogjuk használni. Lásd Tegyük el az Anya Kovászt

Dagasztás

  • Tegyük a kovászt vagy élesztőt a liszt tetejére,
  • 1 percig dagasszuk a robotgéppel,
  • Lassan adjuk hozzá a sót, hogy jól elkeveredjen,
  • Újabb 1 percig dagasszuk a konyhai robotgéppel,
  • Tegyük a tésztát 1 kávéskanál olajjal kikent tálba, fedjük le.
    Ha hideg a konyhánk, tegyük 30 °C ( 86 °F ) -os sütőbe. A legegyszerűbb, ha a kikapcsolt sütő ajtaját kissé nyitva hagyjuk és a lámpával felmelegítjük. Ha a sütő elérte a kívánt hőmérsékletet, csukjuk be az ajtaját és kapcsoljuk ki a lámpát.

Kelesztés melegben

A kenyeret 3 órán át kelesztjük langyos helyen.

A kelesztés elején háromszor félóránként a tálban meghajtogatjuk.

  • Óvatosan húzzuk fel a tészta szélét és hajtsuk rá a tetejére.
  • Forgassuk el a tálat 180 fokkal és a szemben levő oldalon is húzzuk fel a tészta szélét és hajtsuk rá a tetejére
  • Forgassuk el a tálat 90 fokkal és ismételjük meg a nyújtást és hajtást másik két oldalon is
  • Letakarjuk a tálat, visszatesszük a langyos sütőbe.

A harmadig hajtogatás után még 1 óra 30 percig a langyos sütőben kelesztjük.

Kelesztés a pulton

Az összesen 3 óra meleg kelesztés elteltével a pultra tesszük a tálat, levesszük a fedelét és egy konyharuhával letakajuk. 2 óra 30 percet kelesztjük a pulton.

Sütés előkészítése

A tészta kész a sütésre, ha megnőtt, és levegővel telített lett.

A kenyeret gőzben sütjük, hogy megnőjön és szép cserepes legyen a héja. Keressünk egy olyan vas, kerámia, vagy jénai edényt amely hőálló és lehetőleg van fedele. Ha nincs az edénynek fedele, akkor letakarhatjuk alumínium fóliával is.

  • Tedd be azt az edényt a hideg sütőbe, amiben a kenyeret fogod sütni.
  • Ha az edénydenek nincs fedele, és nem takarod le alufóliával, tegyél be egy lábost a sütő aljába vízzel, hogy gőz képződjön a sütőben.
  • Melegítsd fel a sütőt az edénnyel együtt 250 °C ( 480 °F ) -ra.

Vetés

  • Tegyünk be egy hőálló vasfazekat, kerámia, vagy üvegtálat a hideg sütőbe és melegístük fel a sütőt 250 °C ( 480 °F )-ra.
  • Amikor a sütő felmelegedett,
    • borítsuk a tésztát egy lisztezett vágódeszkára,
    • hajtogassuk fel a tészta széleit, hogy feszes legyen,
    • csúnya oldalával lefelé tegyük sütőpapírra,
    • tegyük bele a forró tálba,
    • éles késsel vágjuk be a tészta tetejét, hogy nőni tudjon, és ott repedjen meg,
    • takarjuk le a tálat a fedelével, vagy alufóliával.
  • 250 °C ( 480 °F ) -on letakarva süssük 30 percig

Sütés félidő

  • Vegyük ki a kenyeret a tálból és tegyük a sütő rácsára sütőpapír nélkül
  • Ha a kenyér alja már sokkal barnább, mint a teteje, tegyünk alá alufóliát, hogy az alja ne égjen meg
  • Csökkentsük a sütő hőmérséketét 220 °C ( 430 °F ) -ra
  • Süssük 20 – 25 percig, amíg a kenyér tetején a repedés széle szenesedni kezd, hogy a belseje is jól átsüjlön.

Failed to complete #converge action: [password is a required option]

The Chef Test Kitchen EC2 driver can connect to Windows instances two ways.

Using a custom image with known admin account credentials

When we use a custom built image which has a local administrator account with known username and password, specify it in the kitchen.yml file.

driver:
  name: ec2
  aws_ssh_key_id: MY_SSH_KEY_NAME
  ...

platforms:
  - name: windows-2019
    driver:
      image_id: "ami-MY_CUSTOM_AMI_ID"
      instance_type: t3.medium
      security_group_ids: ['sg-MY_SECURITY_GROUP_ID1','sg-MY_SECURITY_GROUP_ID2']
    transport:
      name: winrm
      elevated: true            # Required for the installation of some Windows features
      connection_timeout: 60
      connection_retries: 10
      username: MY_ADMIN_USERNAME
      password: MY_ADMIN_PASSWORD

Standard Amazon AMI with random password

When we use an Amazon standard Windows AMI, the kitchen-ec2 driver needs to retrieve the random password by using the SSH key the server was launched with.

driver:
  name: ec2
  aws_ssh_key_id: MY_SSH_KEY_NAME
  ...

platforms:
  - name: windows-2019
    driver:
      image_id: "ami-MY_CUSTOM_AMI_ID"
      instance_type: t3.medium
      security_group_ids: ['sg-MY_SECURITY_GROUP_ID1','sg-MY_SECURITY_GROUP_ID2']
    transport:
      name: winrm
      elevated: true            # Required for the installation of some Windows features
      connection_timeout: 60
      connection_retries: 10
      username: Administrator
      ssh_key: MY_SSH_KEY_PATH/MY_SSH_KEY_FILE.pem

If the ssh key location is not specified in the transport section of the platform in the kitchen.yml file, we get the error message:

Failed to complete #converge action: [password is a required option] on …

Troubleshooting

When you get the error message:

Failed to complete #converge action: [password is a required option] on …

  • Make sure the transport section of the platform in the kitchen.yml file contains the line
    ssh_key: MY_SSH_KEY_PATH/MY_SSH_KEY_FILE.pem
  • It is possible, that the saved password of the Windows instance in the .kitchen/...yml file is not valid anymore. Destroy the instance and execute the kitchen converge command again.

Scan documents into password-protected ZIP files with iPhone

Follow these steps to

  • scan documents into PDF format with your iPhone,
  • transfer them to your computer,
  • compress them to a password-protected ZIP file.

Scanning

Your iPhone can scan documents into PDF files

  • Open the Notes app
  • Tap the new document icon in the lower right corner to create a new note
  • Tap the camera icon
  • Select Scan Documents
  • Point the camera to the document and take a picture of it
  • Edit the corners if necessary and click Keep Scan
  • Scan all pages and click Save

  • Click the circle in the upper right corner
  • Select Send a Copy
  • Select Save to Files
  • Select the iCloud Drive and click the new folder icon to create a folder in the iCloud Drive
  • Enter the name of the new folder
  • Select the new folder and click Save in the upper right corner

Transfer the files to your computer

  • In your web browser navigate to icloud.com
  • Log in with your Apple ID
  • Select the iCloud Drive icon
  • Double click the folder of the document
  • Select the document
  • Click the download icon
  • Click the arrow next to the downloaded document and select Show in folder

Encrypt the document

  • Install 7-Zip on your computer from https://www.7-zip.org/download.html
  • In Windows Explorer right-click the downloaded file
  • In the 7-Zip section select Add to archive
  • Select the Zip archive format
  • Select AES-256 encryption method
  • Enter a secure password
  • Click the OK button

Send the document

If you send the ZIP file in an email do not include the password in the same email. If possible, use a different communication method to transfer the password. Send it as a text message (SMS), or tell the recipient over the phone.

Decrypt the document

Ask them to

  • Right-click the ZIP file
  • In the 7-Zip section of the pop-up menu select Extract to “…”
  • Enter the password to decrypt the Zip archive
  • The documents will be available in the folder named after the Zip file.

Search the Chef server

Use the knife search command to list nodes that match the provided criteria

Find nodes with a specific cookbook in the run list (runlist)

knife search node 'recipes:MY_COOKBOOK\:\:*'

Find nodes with a specific recipe in the run list (runlist)

knife search node 'recipes:MY_COOKBOOK\:\:MY_RECIPE'

List nodes with a specific OS

All Linux nodes

knife search node "os:linux"

All nodes with Ubuntu OS

knife search node 'platform:ubuntu'

The last time the node successfully executed the run list (checked in)

List the status of all nodes and save it in a file. The columns contain how long ago the node successfully executed the run list, the name of the node, and the operating system.

knife status > nodes.csv

List nodes attached to a specific Policy Group and display the ‘ec2.instance_id’ attribute only

knife search 'policy_group:dev' -a ec2.instance_id

Display all information about a node

knife node show <FQDN> -l

List all nodes and display the Policy Group attribute only

knife search node 'name:*' -a policy_group