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'
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
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.
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
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.
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
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ég
Kis (700 g) kenyérhez
Nagy (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őpontja
Tevékenység
Kis (700 g) kenyérhez
Nagy (1200 g) kenyérhez
Várakozás utána
10:00
Autolízis 38-40°C-os vízzel
450 g liszt 321 g víz
700 g liszt 500 g víz
30 perc
10:30
Tedd el az Anya Kovászt
10:40
Dagasztás
90 g kovász 11 g só
140 g kovász 18 g só
30 perc
11:30
1. Hajtogatás
30 perc
12:00
2. Hajtogatás
30 perc
12:30
3. Hajtogatás
1 óra 30 perc
14:00
Tedd ki a tálat a pultra
2 óra 30 perc
16:00
Sütő felfűtése 250 °C-ra
30 perc
16:30
Vetés Sütés 250 °C-on
30 perc
17:00
Sütés 220 °C-on
20 – 25 perc
17:30
Ké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.
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.
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.
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