chef push always regenerates the revision id and Policyfile.lock.json

If the chef update and chef push commands always regenerate the Policyfile.lock.json file and the revision_id in it, make sure the Chef cookbook contains the chefignore file and it also references all possible Policyfile lock files:

# Policyfile #
##############
Policyfile.rb
*.lock.json

If a cookbook file changes, a new Policyfile.lock.json is generated during chef push.

chef update and chef push always check the cookbook files not listed in the chefignore file, and if there is a change, regenerate the Policyfile.lock.json including the revision_id element in it.

Failed to complete #create action: [undefined method `[]’ for nil:NilClass] on …

When we launch a test instance with Chef Test Kitchen, we may get the error message:

—–> Starting Test Kitchen (…)
—–> Creating …
——Exception——-
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: 1 actions failed.
>>>>>> Failed to complete #create action: [undefined method `[]’ for nil:NilClass] on …
>>>>>> ———————-
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running kitchen diagnose --all for configuration

Missing AMI

This can be the result of a missing AWS AMI referenced in the kitchen.yml file. Check if the AMI is still available in the AWS account you are working in.

Tejes vajas fonott császárzsemle

Igazi békebeli fonott császárzsemle receptet találtunk Gábornál.

Hozzávalók

TangZhong (előtészta)
260 ml tej
40 g liszt
összemelegítve.

Az élesztőhöz
230-250 ml tejben
24 g élesztő
egy csipet cukorral felfuttatjuk

A tésztához
650 g finom liszt
10- 12 g só
12 g cukor
35 g vaj

Előkészítés

Felfuttatjuk az élesztőt

Előtészta:
Mielőtt forrni kezdene a tej, lecsökkentjük a hőmérsékletet és gyors keverés mellett lassan beleöntjük a lisztet. Összemelegítjük a lisztet a tejjel, a video szerint, lefedjük, lehűtjük.

Dagasztás

Átszitáljuk a lisztet a dagasztó tálba
hozzáadjuk az előtésztát
A sót, cukrot, A felfuttatott élesztőt
Jól kidagasztjuk
Amikor a tészta szépen felvette a lisztet  és összeállt, hozzáadjuk a vajat
Ha a tészta elkészült, áttesszük egy kiolajozott kelesztő tálba.
A tészta érés ideje a tálban 45 perc

Kivesszük a tésztát és elosztjuk 12-13 db, kb . 95 gr-os darabra
Gömbölyítjük a tésztákat, nem lisztezzük a deszkát
Letakarva 5-10 percet pihentetjük

Megformázzuk a tésztát

Hajtogatjuk, hurkákat készítünk, mint a kalács fonásnál
Kinyújtjuk a hurkákat 40-45 cm hosszúra
Vékonyan belisztezzük a deszka hátsó részét
fonás előtt meghempergetjük a tésztát, hogy ne tapadjon össze
Hurkot kötünk, hogy megformázzuk a császárzsemlét
Sütőpapírral bélelt tepsire tesszük a felét, egy másik tepsire a másik
felét
Leterítjük egy konyharuhával és egy műanyag fóliát (zacskót) teszünk rá
Kelesztés 50-70 perc

Sütés

A sütőt előmelegítjük 230 C °-ra, alsó-felső sütésre, az aljába vizet teszünk egy edényben.


Sütés előtt, mielőtt a sütőbe tesszük, a tésztákat vízzel átspricceljük.
Betesszük a tepsit a sütőbe, 210 C°-ra csökkentjük a hőmérsékletet, 16-20 percig sütjük,  a vizet 12 perc után eltávolítjuk.
Ha a zsemlék alja nem sült meg eléggé, a zsemléket letakarhatjuk alufóliával, esetleg lejjebb tesszük a tepsit, így sütjük 4-8 percig ( 16-20 perc összesen )


Sütés után ismét vízzel lespricceljük.

Gábor web oldalalán minden receptjét megtaláljátok: gaborahazipek.hu

Gábor videóját itt láthatjátok

Friss élesztő és szárított élesztő összehasonlítása

A legegyszerűbben a következő formulával hasonlíthatjuk össze a friss élesztőt és a szárított élesztőt:

1 g szárított élesztő 3 g friss élszetőnek felel meg.

Ha nincs eléggé érzékeny mérlegünk, 1 teáskanál ( 3 g ) szárított élesztő 9 g friss élesztőnek felel meg.

extra characters at the end of n command

When you use sed to insert a template file into another file with the command

# $1 String to insert
# $2 File to insert to
# $3 String to insert after
sed  "/$3/a\\
$1\\
" $2 > tmp && mv tmp $2	

and get the error message

extra characters at the end of n command

Make sure the template file supplied in $1 does not have an empty line at the top.

Test Chef cookbooks with Docker containers

Kitchen Dokken is a provisioner to test cookbooks in Docker containers. It is very fast and efficient compared to cloud instances like AWS EC2s, Vagrant boxes, or VMWare virtual machines.

Currently, you can only test Linux cookbooks with Kitchen Dokken.

To generate a cookbook with the dokken provisioner use the –kitchen option

chef generate cookbook MY_COOKBOOK_NAME --kitchen dokken

The Kitchen Dokken GitHub repository contains more information at https://github.com/test-kitchen/kitchen-dokken

Sample kitchen.yml file with kitchen dokken provisioner at https://github.com/chef-cookbooks/sudo/blob/master/kitchen.dokken.yml

Webinar links at https://www.chef.io/webinars

Silence unknown callers

The new iPhone operating system includes a feature to send all unwanted calls directly to the voicemail. This eliminates the daily car warranty spam calls. If someone calls you from a number that is in your contact list, in your recent outgoing call list, or in a Siri suggestion, the call rings your phone, otherwise it is immediately forwarded to the voicemail. If it was an important call, the caller can leave a message and you can call them back.

To configure your iPhone

  • open Settings
  • select Phone
  • select Silence Unknown Callers
  • slide the switch on the page to show green background

Simultaneous screen sharing in Zoom

Zoom supports simultaneous screen sharing by multiple participants. It is ideal for remote meetings, design sessions, and pair programming. To enable it, configure your Zoom client to use multiple monitors.

  • Open the Zoom preferences
  • On the general tab check Use dual monitors
  • During the meeting in the Share Screen icon select Multiple participants can share simultaneously

Is the Chef aws_s3_file resource idempotent?

Yes, it is idempotent. It means, when the target file on the local drive matches the source file in the S3 bucket, Chef Client does not download the file. In the past aws_s3_file was not idempotent, but now behind the scenes it calls remote_file which compares the files and skips the download when the files match.

     * aws_s3_file[/var/myfile.deb] action create
       * remote_file[/var/myfile.deb] action create (skipped due to not_if)

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'