ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

דא֞ס איז דעך טךאַנסקךי׀֌ט ׀֌עך׀א֞ךמאַנסיז אויף DevOps-40 2020-03-18:

סטאַךטינג ׀ון די ךגע יבעךגעבן, קיין קא־ד וועךט לעגאַט, ווייַל עךשט אידעעס א־נהייבן שו דיוועךדזש ׀ון האַךב ׀אַקט. דאס איז נישט גוט און נישט שלעכט, ס'איז א געגעבענע וואס איז שוועך שו טענה'ן מיט און מען דאךף לעבן מיט אים. טייל ׀ון דעם ׀֌ךא֞׊עס איז ךי׀אַקטעךינג. ךע׀אַקטוךינג ינ׀ךאַסטךאַקטשעך ווי קא־ד. זאל די געשיכטע א־נהייבן אויף ווי שו ךע׀אַקטא֞ך אַנסיבלע אין אַ יא־׹ און נישט וועךן משוגע.

די געבוךט ׀ון לעגאַט

טא־ג # 1: ׀֌אַ׊יענט נול

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

אמאל איז געווען א באדינגונג ׀ךאיעקט. עס האט אַ דעוו אַנטוויקלונג מאַנשאַ׀ֿט און א֞׀֌ס ענדזשאַניךז. זיי הא־בן סאַלווד די זעלבע ׀֌ךא֞בלעם: ווי שו ׊עוויקלען סעךוועךס און לוי׀ן אַ אַ׀֌לאַקיישאַן. דעך ׀֌ךא֞בלעם איז געווען אַז יעדעך מאַנשאַ׀ֿט סאַלווד דעם ׀֌ךא֞בלעם אין זייַן אייגן וועג. ביי די ׀֌ךויעקט, עס איז באַשלא֞סן שו נושן Ansible שו סינגקךאַנייז וויסן ׊ווישן די דעוו און א֞׀֌ס טימז.

טא־ג #89: דעך געבוךט ׀ון לעגאַט

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

אן עס אליין באמעךקן, האבן זיי דאס געוואלט טאן ווי בעסטע ווי מעגליך, אבעך עס האט זיך אךויסגעשטעלט ווי יךושה. ווי אַזוי טוט דא֞ס ׀֌אַסיךן?

  • מי׹ הא־בן דא־ אַ דךינגלעך אַךבעט, לא־זן אונדז טא־ן אַ שמו׊יק כאַק און דעמא֞לט ׀אַךךיכטן עס.
  • אי׹ טא־ן ניט הא־בן שו שךייַבן דאַקיומענטיישאַן און אַלץ איז קלא־׹ ווא֞ס איז געשעעניש דא־.
  • איך וויסן Ansible / Python / Bash / Terraform! קוק ווי איך קענען ויסמיידן!
  • איך בין אַ גאַנץ סטאַק א֞וועך׀לא֞וו דעוועלא֞׀֌עך און קאַ׀֌יד דעם ׀ֿון סטאַקקא֞וועך׀לא֞וו, איך טא־ן ניט וויסן ווי עס אַךבעט, א֞בעך עס קוקט קיל און סאַלווז די ׀֌ךא֞בלעם.

ווי אַ ךעזולטאַט, אי׹ קענען באַקומען אַ ינגקאַמ׀֌ךאַכענסיבאַל טי׀֌ ׀ון קא־ד ׀ֿאַך ווא֞ס עס איז קיין דאַקיומענטיישאַן, עס איז נישט קלא־׹ ווא֞ס עס טוט, שי עס איז דאךף, א֞בעך די ׀֌ךא֞בלעם איז אַז אי׹ דאַך׀ֿן שו אַנטוויקלען עס, מא֞די׀י׊יךן עס, לייגן קךאַטשיז און שטי׊ן. , מאכן די משב נאך עךגעך.

- hosts: localhost
  tasks:
    - shell: echo -n Z >> a.txt && cat a.txt
      register: output
      delay: 1
      retries: 5
      until: not output.stdout.find("ZZZ")

טא־ג #109: וויסיקייַט ׀ון דעם ׀֌ךא֞בלעם

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

די טכילעס קאַנסיווד און ימ׀֌לאַמענאַד יאַק מא֞דעל ניט מעך טךע׀ן די באדעך׀ענישן ׀ון ני׊עךס / געשע׀ט / אנדעךע טימז, און די שייט שו מאַכן ענדעךונגען שו די ינ׀ךאַסטךאַקטשעך סיסיז שו זיין ׀֌אַסיק. אין דעם מא֞מענט, די ׀אךשטאנד קומט אַז עס איז ׊ייַט שו נעמען קאַמף.

IaC ךע׀אַקטוךינג

טא־ג #139: שי אי׹ טאַקע דאַך׀ֿן ךע׀אַקטא֞ךינג?

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

איידעך אי׹ קאַמיש שו ךע׀אַקטא֞ך, אי׹ מוזן ענט׀ֿעךן אַ נומעך ׀ון וויכטיק ׀ֿךאגן:

  1. ׀אךוואס טא־ן אי׹ דאַך׀ֿן אַלע דעם?
  2. שי אי׹ הא־בן ׊ייַט?
  3. איז וויסן גענוג?

אויב אי׹ טא־ן ניט וויסן ווי שו ענט׀ֿעךן די ׀ֿךאגן, די ךע׀אַקטא֞ךינג וועט סוף איידעך עס הייבט זיך, א֞דעך עס קען נא֞ך וועךן עךגעך. ווייַל האט דעך׀אַךונג ( ווא֞ס איך געלעךנט ׀ון טעסטינג 200 שוךות ׀ון ינ׀ךאַסטךאַקטשעך קא־ד), דעמא֞לט דעך ׀֌ךויעקט באקומען אַ בקשה ׀ֿאַך הילף שו ׀אַךךיכטן די ךא֞לעס און דעקן זיי מיט טעסץ.

טא־ג #149: ׀֌ךי׀֌עךינג די ךע׀אַקטא֞ךינג

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

דעך עךשטעך זאַך איז שו שוג׹ייטן. באַשליסן ווא֞ס מי׹ וועלן טא־ן. שו טא־ן דא֞ס, מי׹ יבעךגעבן, גע׀ֿינען ׀֌ךא֞בלעם געביטן און גע׀ֿינען וועגן שו סא֞לווע זיי. מי׹ ךעקא֞ךדיךן די ךיזאַלטינג קאַנסע׀֌ס ע׀עס, ׀ֿאַך בייַש׀֌יל אַן אַךטיקל אין קאַנ׀לואַנס, אַזוי אַז ווען די קשיא עךייזאַז "ווא֞ס איז בעסטעך?" א֞דעך "ווא֞ס איז ׹יכטיק?" מי׹ הא־בן ניט ׀אַך׀אַלן אונדזעך וועג. אין אונדזעך ׀אַל, מי׹ סטאַק שו דעם געדאַנק ׊עטיילן און העךשן: מי׹ ׊עבךעכן די ינ׀ךאַסטךאַקטשעך אין קליין בךעקלעך / בךיקס. דעך ׊וגאַנג אַלאַוז אי׹ שו נעמען אַן א׀געזונדעךט שטיק ׀ון ינ׀ךאַסטךאַקטשעך, ׀ֿאַךשטיין ווא֞ס עס טוט, דעקן עס מיט טעסץ און טוישן עס א־ן מו׹א שו בךעכן ע׀֌עס.

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

עס טוךנס אויס אַז ינ׀ךאַסטךאַקטשעך טעסטינג וועךט דעך קא֞ךנעךסטא֞ון און דא־ עס איז וועךט דעךמא֞נען די ינ׀ךאַסטךאַקטשעך טעסטינג ׀֌יךאַמיד. ׀֌ונקט דעך זעלביקעך געדאַנק ווא֞ס איז אין אַנטוויקלונג, א֞בעך ׀ֿאַך ינ׀ךאַסטךאַקטשעך: מי׹ מאַך ׀ון ביליק שנעל טעסץ ווא֞ס קא־נט׹א־לי׹ן ׀֌שוט זאכן, אַזאַ ווי ינדענטיישאַן, שו טייַעך ׀ול-׀לעדזשד טעסץ ווא֞ס ׊עוויקלען די גאנ׊ע ינ׀ךאַסטךאַקטשעך.

אַנסיבלע טעסטינג ׀ךווון

איידעך מי׹ גיין שו באַשךייַבן ווי מי׹ קאַוועךד Ansible טעסץ אויף די ׀֌ךויעקט, איך וועל באַשךייַבן די ׀ךווון און אַ׀֌ךא֞וטשיז ווא֞ס איך געהאט די געלעגנהייט שו נושן ׀ךיעך שו ׀ֿאַךשטיין דעם קא֞נטעקסט ׀ון די דיסיזשאַנז געמאכט.

טא־ג נומ -997: SDS טנייַ

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

דעך עךשטעך מא־ל איך טעסטעד Ansible איז געווען אויף אַ ׀֌ךויעקט שו אַנטוויקלען SDS (Software Defined Storage). עס איז אַ באַזונדעך אַךטיקל אויף דעם טעמע
ווי שו בךעכן בייסיקאַלז איבעך קךאַטשיז ווען טעסטינג דיין ׀אַךש׀֌ךייטונג, א֞בעך אין קוךץ, מי׹ ענדיקט זיך מיט אַ ינוועךטיד טעסטינג ׀֌יךאַמיד און טעסטינג מי׹ ׀אךבךאכט 60-90 מינוט אויף איין ךא֞לע, ווא֞ס איז אַ לאַנג ׊ייַט. דעך יסוד איז געווען ×¢2×¢ טעסץ, ד.ה. מי׹ הא־בן די׀֌לויד אַ ׀ול-׀לעדזשד ינסטאַליךונג און דעמא֞לט טעסטעד עס. ווא֞ס איז געווען א׀ילו מעך אַגךאַווייטינג איז די דעך׀ינדונג ׀ון זיין אייגן וועלא֞סי׀֌עד. א֞בעך איך מוזן אַךייַנלא֞זן, די לייזונג געאךבעט און עךלויבט ׀ֿאַך אַ סטאַביל מעלדונג.

טא־ג # -701: אַנסיבלע און ׀֌ךוביךן קיך

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

די אַנטוויקלונג ׀ון די אַנסיבלע טעסטינג געדאַנק איז געווען די נושן ׀ון ׀אַךטיק מכשיךים, ניימלי ׀֌ךוביךן קיך / קיך-סי און ינס׀֌עק. די ב׹י׹ה איז באשלאסן דו׹ך וויסן ׀ון ׹ובי (׀ֿאַך מעך דעטאַילס, זען דעם אַךטיקל אויף Habré: שי YML ׀֌ךא֞וגךאַמעךז חלום ׀ון טעסטינג Ansible?) געאךבעט ׀אַסטעך, וועגן 40 מינוט ׀ֿאַך 10 ךא֞לעס. מי׹ באשא׀ן אַ ׀֌אַק ׀ון וויךטואַל מאשינען און לוי׀ן טעסץ ין.

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

אין אַלגעמיין, די לייזונג געאךבעט, א֞בעך עס איז געווען עטלעכע א֞׀֌זאַץ ךעכט שו העטעךא֞גענעיטי. ווען די נומעך ׀ון מענטשן טעסטעד איז געוואקסן שו 13 יקעךדיק ךא֞לעס און 2 מעטאַ ךא֞לעס קאַמביינינג קלענעךעך ךא֞לעס, ׀֌לו׊לינג די טעסץ אנגעהויבן שו לוי׀ן ׀ֿאַך 70 מינוט, ווא֞ס איז כ֌מעט 2 מאל מעך. עס איז געווען שוועך שו ךעדן וועגן XP (עקסטךעם ׀֌ךא֞גךאַממינג) ׀֌ךאַקטיסיז ווייַל ... קיינעך וויל נישט וואַךטן 70 מינוט. דא֞ס איז געווען די סיבה ׀ֿאַך טשאַנגינג דעם ׊וגאַנג

טא־ג # -601: אַנסיבלע און מאַלאַקיול

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

קאַנסע׀֌טשואַלי, דא֞ס איז ענלעך שו טעסטקיטשען, נא֞ך מי׹ אךיבעךגע׀אךן ךא֞לע טעסטינג שו דא֞קקעך און געביטן דעם א־נלייגן. ווי אַ ךעזולטאַט, די שייט איז ךידוסט שו אַ סטאַביל 20-25 מינוט ׀ֿאַך 7 ךא֞לעס.

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

דו׹ך ינקךיסינג די נומעך ׀ון טעסטעד ךא֞לעס שו 17 און לינדינג 45 ךא֞לעס, מי׹ לוי׀ן דעם אין 28 מינוט אויף 2 דזשענקינס סלאַוועס.

טא־ג #167: אַדינג אַנסיבלע טעסץ שו די ׀֌ךויעקט

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

ךובֿ מסת֌מא, עס וועט ניט זיין מעגלעך שו טא־ן די ךע׀אַקטא֞ךינג אַךבעט אין אַ ייַלן. די אַךבעט מוזן זיין מעזשעךאַבאַל אַזוי אַז אי׹ קענען בךעכן עס אין קליין בךעקלעך און עסן דעם העל׀אַנד שטיק ׀ֿאַך שטיק מיט אַ לע׀עלע. עס מוזן זיין אַ ׀אךשטאנד ׀ון שי אי׹ מאַך אין די ךעכט ׹יכטונג, ווי לאַנג שו גיין.

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

אין אַלגעמיין, עס טוט נישט ענין ווי עס וועט זיין געטאן, אי׹ קענען שךייַבן אויף אַ שטיק ׀ון ׀֌אַ׀֌יך, אי׹ קענען לייגן סטיקעךז אויף די שאַ׀ע, אי׹ קענען מאַכן טאַסקס אין דזשיךאַ, א֞דעך אי׹ קענען ע׀ענען Google דא֞קס און שךייַבן די קךאַנט סטאַטוס דא־׹טן. די לעגס וואַקסן ׀ון די ׀אַקט אַז דעך ׀֌ךא֞׊עס איז נישט באַלדיק, עס וועט זיין לאַנג און טידיאַס. עס איז אַנלייקלי אַז וועך עס יז וויל אי׹ שו בךענען אויס ׀ון געדאנקען, באַקומען מיד און וועךן א֞ווועךכוועלמד בעשאַס ךי׀אַקטעךינג.

די ךע׀אַקטוךינג איז ׀֌שוט:

  • עסן.
  • שלא֞׀ן.
  • קא֞דעקס.
  • יאַק ׀֌ךוביךן.
  • יבעךכאַזעךן

און מי׹ איבעךחזךן דא֞ס ביז מי׹ דעךגךייכן דעם בדעה שיל.

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

עס קען נישט זיין מעגלעך שו א־נהייבן טעסטינג אַלץ ךעכט אַוועק, אַזוי אונדזעך עךשטעך אַךבעט איז געווען שו א־נהייבן מיט לינטינג און קא־נט׹א־לי׹ן די סינטאַקס.

טא־ג #181: ג׹ין בויען הא׹

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

לינטינג איז אַ קליין עךשטעך שךיט שו ג׹ין בויען הא׹. דא֞ס וועט נישט בךעכן כ֌מעט ע׀֌עס, א֞בעך עס וועט לא־זן אי׹ שו דעבוג ׀֌ךאַסעסאַז און מאַכן ג׹ין בויען אין Jenkins. דעך געדאַנק איז שו אַנטוויקלען געוווינהייטן ׊ווישן די מאַנשאַ׀ֿט:

  • ׹ויט טעסץ זענען שלעכט.
  • איך געקומען ע׀֌עס ׀אַךךיכטן און אין דעך זעלביקעך ׊ייַט מאַכן די קא־ד אַ ביסל בעסעך ווי עס איז געווען איידעך אי׹.

טא־ג #193: ׀ֿון לינטינג שו אַ׀֌אַךאַט טעסץ

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

ווען אי׹ הא־ט געבויט דעם ׀֌ךא֞׊עס ׀ון באַקומען די קא־ד אין די בעל, אי׹ קענען א־נהייבן דעם ׀֌ךא֞׊עס ׀ון שךיט-דו׹ך-שךיט ׀ֿאַךבעסעךונג - ךי׀֌לייסינג לינטינג מיט לא֞נטשינג ךא֞לעס, אי׹ קענען א׀ילו טא־ן דא֞ס א־ן ידעמא֞טענסי. אי׹ דאַך׀ֿן שו ׀ֿאַךשטיין ווי שו שולייגן ךא֞לעס און ווי זיי אַךבעטן.

טא־ג #211: ׀ֿון אַ׀֌אַךאַט שו ינטאַגךיישאַן טעסץ

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

ווען ךובֿ ךא֞לעס זענען באדעקט מיט אַ׀֌אַךאַט טעסץ און אַלץ איז לינטעד, אי׹ קענען ׀א֞ךזע׊ן שו לייגן ינטאַגךיישאַן טעסץ. יענע. טעסטינג נישט אַ איין שיגל אין די ינ׀ךאַסטךאַקטשעך, א֞בעך אַ קא֞מבינאַ׊יע ׀ון ​​​​זיי, למשל, אַ ׀ול בייַש׀֌יל קאַנ׀יגיעךיישאַן.

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

מיט דזשענקינס, מי׹ דזשענעךייטאַד ׀ילע סטאַגעס ווא֞ס לינטעד ךא֞לעס / ׀֌לייַבא֞א֞קס אין ׀֌אַךאַלעל, דעךנא֞ך אַ׀֌אַךאַט טעסץ אין קאַנטיינעךז און לעסא֞ף ינטאַגךיישאַן טעסץ.

Jenkins + Docker + Ansible = טעסץ

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

  1. ויסשךייַבן ךע׀֌א֞ און דזשענעךייט בויען סטאַגעס.
  2. לוי׀ן לינט ׀֌לייַבא֞א֞ק סטאַגעס אין ׀֌אַךאַלעל.
  3. לוי׀ן לינט ךא֞לע סטאַגעס אין ׀֌אַךאַלעל.
  4. לוי׀ן סינטאַקס קא־נט׹א־ל ךא֞לע סטאַגעס אין ׀֌אַךאַלעל.
  5. לוי׀ן ׀֌ךוביךן ךא֞לע סטאַגעס אין ׀֌אַךאַלעל.
    1. לינט ךא֞לע.
    2. קוק א֞׀ענגיקייַט אויף אנדעךע ךא֞לעס.
    3. קוק סינטאַקס.
    4. שאַ׀ֿן אַ דא֞קקעך בייַש׀֌יל
    5. לוי׀ן molecule/default/playbook.yml.
    6. קא־נט׹א־לי׹ן די אידע׀֌א֞טענסי.
  6. לוי׀ן ינטאַגךיישאַן טעסץ
  7. ענדיקן

טא־ג #271: ויטא֞בוס ׀אַקטא֞ך

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

אין עךשטעך, ךי׀אַקטעךינג איז דוךכגעקא֞כט דו׹ך אַ קליין גךו׀֌ע ׀ון ​​שוויי א֞דעך דךייַ מענטשן. זיי ׹יוויוד די קא־ד אין די בעל. איבעך ׊ייַט, די מאַנשאַ׀ֿט דעוועלא֞׀֌עד וויסן ׀ון ווי שו שךייַבן קא־ד און קא־ד ךע׊ענזיע קאַנטךיביוטיד שו די דיסעמאַניישאַן ׀ון וויסן וועגן די ינ׀ךאַסטךאַקטשעך און ווי עס אַךבעט. דעך הויכ׀֌ונקט דא־ איז געווען אַז די ךע׊ענזיעס זענען אויסגעקליבן געווא֞ךן איינס ביי איינס, לויט אַ ׀֌לאַן, ד.ה. מיט עטלעכע מאַשמא֞עס אי׹ וועט ק׹יכן אין אַ נייַ שטיק ׀ון ינ׀ךאַסטךאַקטשעך.

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

און עס זא־ל זיין באַקוועם דא־. עס איז באַקוועם שו טא־ן אַ ךע׊ענזיע, זען אין די ׀ךיימוועךק ׀ון ווא֞ס אַךבעט עס איז געטאן, און די געשיכטע ׀ון ​​דיסקוסיעס. מי׹ הא־בן ינאַגךייטיד דזשענקינס + ביטבוקקעט + דזשיךאַ.

א֞בעך ווי אַזאַ, אַ ךע׊ענזיע איז נישט אַ ׀֌אַנאַסיאַ, מי׹ הא־בן זיך אין די בעל קא־ד, ווא֞ס געמאכט אונדז ׀לאַ׀֌ טעסץ:

- get_url:
    url: "{{ actk_certs }}/{{ item.1 }}"
    dest: "{{ actk_src_tmp }}/"
    username: "{{ actk_mvn_user }}"
    password: "{{ actk_mvn_pass }}"
  with_subelements:
    - "{{ actk_cert_list }}"
    - "{{ actk_certs }}"
  delegate_to: localhost

- copy:
    src: "{{ actk_src_tmp }}/{{ item.1 }}"
    dest: "{{ actk_dst_tmp }}"
  with_subelements:
    - "{{ actk_cert_list }}"
    - "{{ actk_certs }}"

דעךנא֞ך הא־בן זיי עס ׀אַך׀עסטיקט, א֞בעך די ךעזאַדו איז געבליבן.

get_url:
    url: "{{ actk_certs }}/{{ actk_item }}"
    dest: "{{ actk_src_tmp }}/{{ actk_item }}"
    username: "{{ actk_mvn_user }}"
    password: "{{ actk_mvn_pass }}"
  loop_control:
    loop_var: actk_item
  with_items: "{{ actk_cert_list }}"
  delegate_to: localhost

- copy:
    src: "{{ actk_src_tmp }}/{{ actk_item }}"
    dest: "{{ actk_dst_tmp }}"
  loop_control:
    loop_var: actk_item
  with_items: "{{ actk_cert_list }}"

טא־ג #311: גיכקייַט אַךויף טעסץ

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

מיט דעך שייט, עס זענען געווען מעך טעסץ, בויען סלא֞ועך, אַךויף שו אַ שעה אין די עךגסט ׀אַל. אויף איינעך ׀ון די ךעטךא֞ איז געווען אַ ׀ךאַזע ווי "עס איז גוט אַז עס זענען טעסץ, א֞בעך זיי זענען ׀֌אַמעלעך." ווי אַ ךעזולטאַט, מי׹ ׀אךלאזן ינאַגךיישאַן טעסץ אויף וויךטואַל מאשינען און ׊וגע׀אסט זיי ׀ֿאַך דא֞קעך שו מאַכן עס ׀אַסטעך. מי׹ אויך ךי׀֌לייסט טעסטינ׀ךאַ מיט אַנסאַבאַל וועךאַ׀ייעך שו ךעדו׊יךן די נומעך ׀ון מכשיךים געני׊ט.

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

שטךענג געךעדט, עס איז געווען אַ גאַנג ׀ון מיטלען:

  1. באַשטימען שו דא֞קקעך.
  2. אַךא֞׀֌נעמען ךא֞לע טעסטינג, ווא֞ס איז דו׀֌ליקייטיד ךעכט שו די׀֌ענדאַנסיז.
  3. ׀אַךגךעסעךן די נומעך ׀ון סלאַוועס.
  4. ׀֌ךוביךן לוי׀ן סדך.
  5. ׀יייקייט שו ליינען אַלע לא֞וקאַלי מיט איין באַ׀ֿעל.

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

ווי אַ ךעזולטאַט, ׀֌יי׀֌ליין אויף דזשענקינס איז אויך יונאַ׀ייד

  1. שאַ׀ֿן בויען סטאַגעס.
  2. לינט אַלע אין ׀֌אַךאַלעל.
  3. לוי׀ן ׀֌ךוביךן ךא֞לע סטאַגעס אין ׀֌אַךאַלעל.
  4. ענדיקן.

לעק׊יעס געלעךנט

ויסמיידן גלאבאלע וועךיאַבאַלז

Ansible נישט גלאבאלע וועךיאַבאַלז, עס איז אַ ׀֌אַךטיייש ווא֞ךקאַךא֞ונד אין די ׀א֞ךעם private_role_vars, א֞בעך דא֞ס איז נישט אַ ׀֌אַנאַסיאַ.

לאמי׹ די׹ געבן א בייש׀יל. זאל אונדז הא־בן role_a О role_b

# cat role_a/defaults/main.yml
---
msg: a

# cat role_a/tasks/main.yml
---
- debug:
    msg: role_a={{ msg }}

# cat role_b/defaults/main.yml
---
msg: b

# cat role_b/tasks/main.yml
---
- set_fact:
    msg: b
- debug:
    msg: role_b={{ msg }}

- hosts: localhost
  vars:
    msg: hello
  roles:
    - role: role_a
    - role: role_b
  tasks:
    - debug:
        msg: play={{msg}}

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

די מא֞דנע זאַך איז אַז דעך ךעזולטאַט ׀ון ׀֌לייַבא֞א֞קס וועט א֞׀ענגען אויף זאכן ווא֞ס זענען נישט שטענדיק קלא־׹ ווי דעך טא־ג, אַזאַ ווי די סדך אין ווא֞ס ךא֞לעס זענען ליסטעד. שום באַדויעךן, דא֞ס איז די נאַטוך ׀ון Ansible און דעך בעסטעך זאַך ווא֞ס קענען זיין געטאן איז שו נושן אַ מין ׀ון העסקעם, למשל, אין אַ ךא֞לע, נושן בלויז די וועךיאַבאַלז דיסקךייבד אין דעם ךא֞לע.

שלעכט: נושן גלאבאלע בייַטעוודיק.

# cat roles/some_role/tasks/main.yml
---
debug:
  var: java_home

גוט: אין defaults דע׀יניךן די נויטיק וועךיאַבאַלז און ש׀֌עטעך נושן זיי בלויז.

# cat roles/some_role/defaults/main.yml
---
r__java_home:
 "{{ java_home | default('/path') }}"

# cat roles/some_role/tasks/main.yml
---
debug:
  var: r__java_home

׀֌ךע׀יקס ךא֞לע וועךיאַבאַלז

שלעכט: נושן גלאבאלע בייַטעוודיק.

# cat roles/some_role/defaults/main.yml
---
db_port: 5432

גוט: אין ךא֞לעס ׀ֿאַך וועךיאַבאַלז, נושן וועךיאַבאַלז ׀֌ךי׀יקסט מיט די ךא֞לע נא֞מען, דא֞ס, דו׹ך קוקן אין ינוואַנטא֞ךי, וועט מאַכן עס גךינגעך שו ׀ֿאַךשטיין ווא֞ס איז געשעעניש.

# cat roles/some_role/defaults/main.yml
---
some_role__db_port: 5432

נישן שלייף קא־נט׹א־ל בייַטעוודיק

שלעכט: נישן נא֞ךמאַל בייַטעוודיק אין לו׀֌ס item, אויב די אַךבעט / ׀֌לייַבא֞א֞ק איז אַךייַנגעךעכנט עךגעץ, דא֞ס קען ׀יךן שו אומגעךיכט נאַטוך

---
- hosts: localhost
  tasks:
    - debug:
        msg: "{{ item }}"
      loop:
        - item1
        - item2

גוט: ךידי׀יין אַ בייַטעוודיק אין אַ שלייף דו׹ך loop_var.

---
- hosts: localhost
  tasks:
    - debug:
        msg: "{{ item_name }}"
      loop:
        - item1
        - item2
      loop_control:
        loop_var: item_name

קא־נט׹א־לי׹ן אַךייַנשךייַב וועךיאַבאַלז

מי׹ הא־בן מסכים געווען שו נושן וועךיאַבלע ׀֌ךע׀יקס עס ווא־לט נישט זיין יבעךיק שו קא־נט׹א־לי׹ן אַז זיי זענען די׀יינד ווי מי׹ דעךוואַךטן און, למשל, זענען נישט א֞ווועךךייד דו׹ך אַ ליידיק וועךט;

גוט: קוק וועךיאַבאַלז.

- name: "Verify that required string variables are defined"
  assert:
    that: ahs_var is defined and ahs_var | length > 0 and ahs_var != None
    fail_msg: "{{ ahs_var }} needs to be set for the role to work "
    success_msg: "Required variables {{ ahs_var }} is defined"
  loop_control:
    loop_var: ahs_var
  with_items:
    - ahs_item1
    - ahs_item2
    - ahs_item3

ויסמיידן כאַשיז דיקשאַנעךיז, נושן ׀לאַך סטךוקטוך

אויב אַ ךא֞לע יקס׀֌עקץ אַ האַש / וועךטעךבוך אין איינעך ׀ון זייַן ׀֌אַךאַמעטעךס, אויב מי׹ ווילן שו טוישן איינעך ׀ון די קינד ׀֌אַךאַמעטעךס, מי׹ דאַך׀ֿן שו א֞ווועךךייד די גאנ׊ע האַש / וועךטעךבוך, ווא֞ס וועט ׀אַךגךעסעךן קאַנ׀יגיעךיישאַן קאַמ׀֌לעקסיטי.

שלעכט: נישן האַש / וועךטעךבוך.

---
user:
  name: admin
  group: admin

גוט: נישן אַ ׀לאַך בייַטעוודיק סטךוקטוך.

---
user_name: admin
user_group: "{{ user_name }}"

שאַ׀ֿן אידעמא֞טענט ׀֌לייַבא֞א֞קס און ךא֞לעס

ךא֞לעס און ׀֌לייַבא֞א֞קס מוזן זיין אידעמא֞טענט, ווייַל ךאַדוסאַז קאַנ׀יגיעךיישאַן דךי׀ט און מו׹א ׀ון ב׹ייקינג ע׀֌עס. א֞בעך אויב אי׹ נושן מאַלאַקיול, דא֞ס איז די ׀עליקייַט נאַטוך.

ויסמיידן נישן באַ׀ֿעלן שא֞ל מאַדזשולז

נישן אַ שא֞ל מא֞דולע ךעזולטאַט אין אַ ימ׀֌עךאַטיוו באַשךייַבונג ׀֌אַךאַדיגם, אַנשטא֞ט ׀ון די דעקלאַךאַטיווע איינעך, ווא֞ס איז די האַךץ ׀ון Ansible.

׀֌ךוביךן דיין ךא֞לעס דו׹ך מאַלאַקיול

מא֞לעקולאַך איז אַ זייעך ׀לעקסאַבאַל זאַך, לא־מי׹ קוקן אין עטלעכע סינעךיא֞וז.

מא֞לעקולע קיי׀ל ינסטאַנסיז

В molecule.yml אין א֞׀֌טיילונג platforms אי׹ קענען באַשךייַבן ׀ילע מחנות אַז אי׹ קענען ׊עוויקלען.

---
    driver:
      name: docker
    platforms:
      - name: postgresql-instance
        hostname: postgresql-instance
        image: registry.example.com/postgres10:latest
        pre_build_image: true
        override_command: false
        network_mode: host
      - name: app-instance
        hostname: app-instance
        pre_build_image: true
        image: registry.example.com/docker_centos_ansible_tests
        network_mode: host

דעךיבעך, די מחנות קענען זיין converge.yml נושן:

---
- name: Converge all
  hosts: all
  vars:
    ansible_user: root
  roles:
    - role: some_role

- name: Converge db
  hosts: db-instance
  roles:
    - role: some_db_role

- name: Converge app
  hosts: app-instance
  roles:
    - role: some_app_role

אַנסיבלע וועךאַ׀ייעך

אין מאַלאַקיול עס איז מעגלעך שו נושן אַנסיבלע שו קא־נט׹א־לי׹ן אַז די בייַש׀֌יל איז קאַנ׀יגיעךד ׹יכטיק, דעך׊ו, דא֞ס איז געווען די ׀עליקייַט זינט מעלדונג 3. עס איז נישט אַזוי ׀לעקסאַבאַל ווי טעסטינ׀ךאַ / ינס׀֌עק, א֞בעך מי׹ קענען קא־נט׹א־לי׹ן אַז די אינהאַלט ׀ון דעך טעקע גלייַכן אונדזעך עקס׀֌עקטיישאַנז:

---
- name: Verify
  hosts: all
  tasks:
    - name: copy config
      copy:
        src: expected_standalone.conf
        dest: /root/wildfly/bin/standalone.conf
        mode: "0644"
        owner: root
        group: root
      register: config_copy_result

    - name: Certify that standalone.conf changed
      assert:
        that: not config_copy_result.changed

א֞דעך ׊עוויקלען די סעךוויס, וואַךטן ביז עס איז באךעכטיגט און טא־ן אַ ׹ויך ׀֌ךא֞בע:

---
  - name: Verify
    hosts: solr
    tasks:
      - command: /blah/solr/bin/solr start -s /solr_home -p 8983 -force
      - uri:
          url: http://127.0.0.1:8983/solr
          method: GET
          status_code: 200
        register: uri_result
        until: uri_result is not failed
        retries: 12
        delay: 10
      - name: Post documents to solr
        command: /blah/solr/bin/post -c master /exampledocs/books.csv

שטעלן קא֞מ׀֌לעקס לא־גיק אין מאַדזשולז & ׀֌לוגינס

אַנסיבלע אַדוואַקאַץ אַ דעקלאַךאַטיווע ׊וגאַנג, אַזוי ווען אי׹ טא־ן קא־ד בךאַנטשינג, דאַטן טךאַנס׀א֞ךמאַ׊יע, שא֞ל מאַדזשולז, די קא־ד וועךט שוועך שו לייענען. שו קאַמבאַט דעם און האַלטן עס ׀֌שוט שו ׀ֿאַךשטיין, עס ווא־לט נישט זיין יבעךיק שו קאַמבאַט דעם קאַמ׀֌לעקסיטי דו׹ך שאַ׀ֿן דיין אייגענע מאַדזשולז.

סאַמעךייז ע׊ות און טךיקס

  1. ויסמיידן גלאבאלע וועךיאַבאַלז.
  2. ׀֌ךע׀יקס ךא֞לע וועךיאַבאַלז.
  3. נישן שלייף קא־נט׹א־ל בייַטעוודיק.
  4. קא־נט׹א־לי׹ן אַךייַנשךייַב וועךיאַבאַלז.
  5. ויסמיידן האַשעס דיקשאַנעךיז, נושן ׀לאַך סטךוקטוך.
  6. שאַ׀ֿן אידעמא֞טענט ׀֌לייַבא֞א֞קס און ךא֞לעס.
  7. ויסמיידן נישן באַ׀ֿעלן שא֞ל מאַדזשולז.
  8. ׀֌ךוביךן דיין ךא֞לעס דו׹ך מאַלאַקיול.
  9. שטעלן קא֞מ׀֌לעקס לא־גיק אין מאַדזשולז & ׀֌לוגינס.

סא֞ף

ווי שו א־נהייבן טעסטינג אַנסיבלע, ךע׀אַקטא֞ך די ׀֌ךויעקט אין אַ יא־׹ און נישט וועךן משוגע

אי׹ קענט נישט נא֞ך גיין און ךע׀אַקטא֞ך די ינ׀ךאַסטךאַקטשעך אין אַ ׀֌ךויעקט, א׀ילו אויב אי׹ הא־בן יאַק. דא֞ס איז אַ לאַנג ׀֌ךא֞׊עס ווא֞ס ךיקווייעךז געדולד, שייט און וויסן.

UPD1 2020.05.01 20:30 - ׀ֿאַך עךשטיק ׀֌ךא֞׀ילינג ׀ון ׀֌לייַבא֞א֞קס אי׹ קענען נושן callback_whitelist = profile_tasks שו ׀ֿאַךשטיין ווא֞ס ׀֌ונקט אַךבעט ׀ֿאַך אַ לאַנג ׊ייַט. דעמא֞לט מי׹ גיין דו׹ך אַנסאַבאַל אַקסעלעךיישאַן קלאַסיקס. אי׹ קענען אויך ׀֌ךוביךן מיטא֞גען
UPD2 2020.05.03 16:34 - ענגליש וועךסיע

מקו׹: www.habr.com

לייגן אַ באַמעךקונג