ከ "ጅምር" እስከ በሺዎች የሚቆጠሩ አገልጋዮች በደርዘን የውሂብ ማዕከሎች ውስጥ. የሊኑክስ መሠረተ ልማት እድገትን እንዴት እንዳሳደድነው

የእርስዎ የአይቲ መሠረተ ልማት በጣም በፍጥነት እያደገ ከሆነ፣ ይዋል ይደር እንጂ ምርጫ ይገጥማችኋል - እሱን ለመደገፍ የሰው ኃይልን በመስመር ይጨምሩ ወይም በራስ-ሰር መሥራት ይጀምሩ። እስከተወሰነ ጊዜ ድረስ፣ እኛ በመጀመርያው ምሳሌ ውስጥ ኖረን፣ ከዚያም ወደ መሠረተ ልማት-እንደ-ኮድ ረጅም ጉዞ ተጀመረ።

ከ "ጅምር" እስከ በሺዎች የሚቆጠሩ አገልጋዮች በደርዘን የውሂብ ማዕከሎች ውስጥ. የሊኑክስ መሠረተ ልማት እድገትን እንዴት እንዳሳደድነው

እርግጥ ነው, NSPK ጅምር አይደለም, ነገር ግን እንዲህ ዓይነቱ ከባቢ አየር በኩባንያው ውስጥ በመጀመሪያዎቹ ዓመታት ውስጥ ነገሠ, እና እነዚህ በጣም አስደሳች ዓመታት ነበሩ. የኔ ስም ኮርኒያኮቭ ዲሚትሪ፣ ከ10 ዓመታት በላይ ከፍተኛ ተፈላጊነት ያለው የሊኑክስ መሠረተ ልማትን ስጠብቅ ቆይቻለሁ። በጃንዋሪ 2016 የ NSPK ቡድንን ተቀላቀለ እና በሚያሳዝን ሁኔታ የኩባንያውን ሕልውና መጀመሪያ አላየም ፣ ግን በታላቅ ለውጦች ደረጃ ላይ መጣ።

በአጠቃላይ ቡድናችን ለኩባንያው 2 ምርቶችን ያቀርባል ማለት እንችላለን. የመጀመሪያው መሠረተ ልማት ነው። ደብዳቤ መሄድ አለበት፣ ዲ ኤን ኤስ መስራት አለበት፣ እና የጎራ ተቆጣጣሪዎች መውደቅ የሌለባቸው አገልጋዮች ውስጥ እንዲገቡ መፍቀድ አለባቸው። የኩባንያው የአይቲ መልክዓ ምድር ትልቅ ነው! እነዚህ የንግድ እና ተልዕኮ ወሳኝ ስርዓቶች ናቸው፣ ለአንዳንዶች የተደራሽነት መስፈርቶች 99,999 ናቸው። ሁለተኛው ምርት አገልጋዮቹ እራሳቸው, አካላዊ እና ምናባዊ ናቸው. ነባሮቹ ቁጥጥር ሊደረግባቸው ይገባል፣ እና አዳዲሶቹ ከበርካታ ክፍሎች ለመጡ ደንበኞች በየጊዜው ይደርሳሉ። በዚህ ጽሑፍ ውስጥ ለአገልጋዮች የሕይወት ዑደት ኃላፊነት ያለው መሠረተ ልማት እንዴት እንዳዳበርን ላይ ማተኮር እፈልጋለሁ።

የጉዞው መጀመሪያ

በጉዞው መጀመሪያ ላይ የቴክኖሎጂ ቁልልችን ይህን ይመስላል።
OS CentOS 7
FreeIPA የጎራ ተቆጣጣሪዎች
አውቶሜሽን - ሊቻል የሚችል(+ታወር)፣ ኮብልለር

ይህ ሁሉ በበርካታ የመረጃ ማእከሎች ላይ በተሰራጩ በ 3 ጎራዎች ውስጥ ይገኛል. በአንድ የመረጃ ማእከል - የቢሮ ስርዓቶች እና የሙከራ ጣቢያዎች, በቀሪው - PROD.

በአንድ ወቅት አገልጋዮችን መፍጠር ይህን ይመስላል።

ከ "ጅምር" እስከ በሺዎች የሚቆጠሩ አገልጋዮች በደርዘን የውሂብ ማዕከሎች ውስጥ. የሊኑክስ መሠረተ ልማት እድገትን እንዴት እንዳሳደድነው

የ CentOS VM አብነት አነስተኛ ነው እና ዝቅተኛው ዝቅተኛው ትክክል ነው /etc/resolv.conf፣ የተቀረው በአንሲብል በኩል ነው።

CMDB - ኤክሴል.

አገልጋዩ አካላዊ ከሆነ ፣ ከዚያ ቨርቹዋል ማሽኑን ከመቅዳት ይልቅ OSው በላዩ ላይ ተጭኗል Cobbler - የዒላማ አገልጋይ ማክ አድራሻዎች ወደ ኮብል ውቅረት ተጨምረዋል ፣ አገልጋዩ በ DHCP በኩል የአይፒ አድራሻ ይቀበላል ፣ እና ከዚያ OS ፈሰሰ።

መጀመሪያ ላይ, በ Cobbler ውስጥ አንድ ዓይነት የውቅረት ማኔጅመንት ለመሥራት ሞክረን ነበር. ነገር ግን ከጊዜ በኋላ ይህ ወደ ሌሎች የመረጃ ማእከሎች እና VM ለማዘጋጀት በተመጣጣኝ ኮድ ላይ የውቅረቶችን ተንቀሳቃሽነት ችግሮች ማምጣት ጀመረ.

በዚያን ጊዜ ሊቻል የሚችል በብዙዎቻችን ዘንድ እንደ ምቹ የባሽ ማራዘሚያ ተደርጎ ይቆጠር ነበር እና ዛጎልን በመጠቀም ግንባታዎችን አላሳለፍንም ። በአጠቃላይ, Bashsible. ይህ በመጨረሻ የመጫወቻ ደብተሩ በሆነ ምክንያት በአገልጋዩ ላይ ካልሰራ, አገልጋዩን ለመሰረዝ, የመጫወቻ ደብተሩን ለመጠገን እና እንደገና ለመንከባለል ቀላል ነበር. እንደ እውነቱ ከሆነ፣ ምንም አይነት የስክሪፕት እትም ሆነ የውቅረቶች ተንቀሳቃሽነትም አልነበረም።

ለምሳሌ፣ በሁሉም አገልጋዮች ላይ አንዳንድ አወቃቀሮችን መለወጥ እንፈልጋለን።

  1. በሎጂክ ክፍል / የውሂብ ማእከል ውስጥ ባሉ አገልጋዮች ላይ ያለውን ውቅረት እንለውጣለን. አንዳንድ ጊዜ በአንድ ቀን ውስጥ አይደለም - የመገኘት መስፈርቶች እና የትልቅ ቁጥሮች ህግ ሁሉንም ለውጦች በአንድ ጊዜ እንዲተገበሩ አይፈቅድልዎትም. እና አንዳንድ ለውጦች አጥፊ ሊሆኑ የሚችሉ እና ማንኛውንም ነገር እንደገና ማስጀመር ይፈልጋሉ - ከአገልግሎቶች እስከ ስርዓተ ክወናው ድረስ።
  2. በ Ansible ውስጥ መጠገን
  3. በ Cobbler ውስጥ ማስተካከል
  4. ለእያንዳንዱ ምክንያታዊ ክፍል/የመረጃ ማዕከል N ጊዜ መድገም

ሁሉም ለውጦች በተቃና ሁኔታ እንዲሄዱ, ብዙ ምክንያቶች ግምት ውስጥ መግባት ነበረባቸው, እና ለውጦች በየጊዜው ይከሰታሉ.

  • ሊበቅል የሚችል ኮድ ፣ የማዋቀር ፋይሎችን እንደገና በማደስ ላይ
  • የውስጥ ምርጥ ልምዶችን መለወጥ
  • የአደጋዎች/አደጋዎች ትንተና ተከትሎ ለውጦች
  • የደህንነት ደረጃዎችን መለወጥ, ውስጣዊ እና ውጫዊ. ለምሳሌ፣ PCI DSS በየአመቱ በአዲስ መስፈርቶች ይዘምናል።

የመሠረተ ልማት ዕድገት እና የጉዞው መጀመሪያ

የአገልጋዮች / ሎጂካዊ ጎራዎች / የውሂብ ማእከሎች ብዛት አድጓል ፣ እና ከእነሱ ጋር በቅንብሮች ውስጥ ያሉ ስህተቶች ብዛት። በአንድ ወቅት፣ የውቅር አስተዳደርን ለማዳበር በሚያስፈልገን አቅጣጫ ወደ ሦስት አቅጣጫዎች ደርሰናል፡-

  1. አውቶማቲክ. በተቻለ መጠን, በተደጋጋሚ ስራዎች ውስጥ የሰዎች ስህተት መወገድ አለበት.
  2. ተደጋጋሚነት። መሠረተ ልማት በሚገመትበት ጊዜ ለማስተዳደር በጣም ቀላል ነው። ለዝግጅታቸው የአገልጋዮች እና መሳሪያዎች ውቅር በሁሉም ቦታ ተመሳሳይ መሆን አለበት. ይህ ለምርት ቡድኖችም አስፈላጊ ነው - ከሙከራ በኋላ አፕሊኬሽኑ ከሙከራው ጋር ተመሳሳይ በሆነ መልኩ ወደተዘጋጀው ምርታማ አካባቢ ለመግባት ዋስትና ሊሰጠው ይገባል።
  3. በውቅረት አስተዳደር ላይ የተደረጉ ለውጦች ቀላልነት እና ግልጽነት።

ሁለት መሳሪያዎችን ለመጨመር ይቀራል.

GitLab CEን እንደ ኮድ ማከማቻችን መርጠናል፣ ቢያንስ አብሮ ለተሰራው CI/CD ሞጁሎች።

የምስጢር ማከማቻ - Hashicorp Vault፣ ጨምሮ። ለታላቁ ኤፒአይ.

የፈተና ውቅሮች እና ሊሆኑ የሚችሉ ሚናዎች - Molecule+Testinfra. ከሚችለው ሚቶጅን ጋር ከተገናኙ ሙከራዎች በጣም በፍጥነት ይሄዳሉ። በትይዩ የራሳችንን ሲኤምዲቢ እና ኦርኬስትራ ለራስ ሰር ማሰማራት (ፎቶ ከኮብል በላይ የሚታየው) መፃፍ ጀመርን ነገር ግን ይህ ሙሉ ለሙሉ የተለየ ታሪክ ነው፣ የስራ ባልደረባዬ እና የእነዚህ ስርዓቶች ዋና አዘጋጅ ወደፊት የሚነግሩት።

የኛ ምርጫ፡-

ሞለኪውል + Testinfra
ሊታሰብ የሚችል + ግንብ + AWX
የአገልጋዮች ዓለም + DITNET (የራስ ልማት)
ኮብልብል
Gitlab + GitLab ሯጭ
Hashicorp ቮልት

ከ "ጅምር" እስከ በሺዎች የሚቆጠሩ አገልጋዮች በደርዘን የውሂብ ማዕከሎች ውስጥ. የሊኑክስ መሠረተ ልማት እድገትን እንዴት እንዳሳደድነው

በነገራችን ላይ ስለ ሊሆኑ የሚችሉ ሚናዎች. መጀመሪያ ላይ ብቻውን ነበር፣ ከበርካታ ማሻሻያዎች በኋላ 17ቱ ነበሩ። ሞኖሊትን ወደ ኃይለኛ ሚናዎች እንዲከፋፍሉት አጥብቄ እመክራለሁ። ሚናዎቹን በተግባራዊነት ከፋፍለናል - አውታረ መረብ ፣ ምዝግብ ማስታወሻ ፣ ፓኬጆች ፣ ሃርድዌር ፣ ሞለኪውል ወዘተ በአጠቃላይ ፣ ከዚህ በታች ያለውን ስትራቴጂ በጥብቅ ይከተሉ። በአንድ አጋጣሚ ይህ እውነት ነው ብዬ አጥብቄ አልናገርም ፣ ግን ለእኛ ሠርቷል ።

  • አገልጋዮችን ከወርቃማው ምስል መቅዳት ክፉ ነው!ከዋና ዋናዎቹ ጉዳቶች - ምስሎቹ አሁን በምን ሁኔታ ላይ እንዳሉ በትክክል አታውቁም, እና ሁሉም ለውጦች በሁሉም የቨርቹዋል እርሻዎች ውስጥ ወደ ሁሉም ምስሎች ይመጣሉ.
  • ነባሪ የማዋቀሪያ ፋይሎችን በትንሹ ያቆዩ እና እርስዎ ለዋናው የስርዓት ፋይሎች እርስዎ እንደሆኑ ከሌሎች ክፍሎች ጋር ይስማሙ, ለምሳሌ:
    1. /etc/sysctl.conf ባዶ ይተው፣ መቼቶች በ /etc/sysctl.d/ ውስጥ ብቻ መሆን አለባቸው። የእርስዎ ነባሪ በአንድ ፋይል ውስጥ፣ በሌላ ውስጥ ለመተግበሪያው ብጁ።
    2. በስርዓት የተያዙ ክፍሎችን ለማርትዕ የተሻሩ ፋይሎችን ይጠቀሙ።
  • ሁሉንም አወቃቀሮች አብነት ያድርጉ እና ሙሉ ለሙሉ ያስቀምጧቸው፣ ከተቻለ ምንም ሴዲ እና አናሎግ በጨዋታ ደብተሮች ውስጥ ያስቀምጡ።
  • የውቅረት አስተዳደር ስርዓት ኮድን ማደስ፡
    1. ተግባሮችን ወደ አመክንዮአዊ አካላት ይከፋፍሉ እና ሞኖሊቱን ወደ ሚናዎች ይፃፉ
    2. ማሰሪያዎችን ይጠቀሙ! ሊቻል የሚችል-ሊንት፣ ያምል-ሊንት፣ ወዘተ
    3. አካሄድህን ቀይር! አሳፋሪ የለም። የስርዓቱን ሁኔታ ይግለጹ
  • ለሁሉም ሊሆኑ የሚችሉ ሚናዎች በሞለኪውል ውስጥ ሙከራዎችን መጻፍ እና በቀን አንድ ጊዜ ሪፖርቶችን ማመንጨት ያስፈልግዎታል።
  • በእኛ ሁኔታ ፈተናዎችን ካዘጋጀን በኋላ (ከ 100 በላይ የሚሆኑት) ወደ 70000 የሚጠጉ ስህተቶች ተገኝተዋል. ለጥቂት ወራት ተስተካክሏል.ከ "ጅምር" እስከ በሺዎች የሚቆጠሩ አገልጋዮች በደርዘን የውሂብ ማዕከሎች ውስጥ. የሊኑክስ መሠረተ ልማት እድገትን እንዴት እንዳሳደድነው

የእኛ ትግበራ

ስለዚህ፣ ሊሆኑ የሚችሉ ሚናዎች ተዘጋጅተው፣ አብነት ተዘጋጅተው በሊንተሮች ተረጋግጠዋል። እና ጂቶች እንኳን በሁሉም ቦታ ይነሳሉ. ነገር ግን አስተማማኝ ኮድ ለተለያዩ ክፍሎች የማድረስ ጉዳይ ክፍት ሆኖ ቆይቷል። ከስክሪፕቶች ጋር ለማመሳሰል ወሰንን. ይህን ይመስላል፡-

ከ "ጅምር" እስከ በሺዎች የሚቆጠሩ አገልጋዮች በደርዘን የውሂብ ማዕከሎች ውስጥ. የሊኑክስ መሠረተ ልማት እድገትን እንዴት እንዳሳደድነው

ለውጡ ከደረሰ በኋላ, CI ተጀምሯል, የሙከራ አገልጋይ ተፈጠረ, ሚናዎች ይንከባለሉ, በሞለኪውል ተፈትነዋል. ሁሉም ነገር ደህና ከሆነ ኮዱ ወደ ፕሮ ቅርንጫፍ ይሄዳል። ግን አዲስ ኮድ በነባር አገልጋዮች ላይ በቀጥታ አንጠቀምም። ለስርዓቶቻችን ከፍተኛ አቅርቦት አስፈላጊ የሆነው ይህ የማቆሚያ ዓይነት ነው። መሠረተ ልማቱ ግዙፍ በሚሆንበት ጊዜ የብዙ ቁጥር ሕግ ሥራ ላይ ይውላል - ምንም እንኳን ለውጡ ምንም ጉዳት እንደሌለው እርግጠኛ ከሆኑ እንኳን ወደ አሳዛኝ ውጤቶች ሊመራ ይችላል.

አገልጋዮችን ለመፍጠር ብዙ አማራጮችም አሉ። ብጁ የpython ስክሪፕቶችን መርጠን ጨርሰናል። እና ለ CI የሚቻል:

- name: create1.yml - Create a VM from a template
  vmware_guest:
    hostname: "{{datacenter}}".domain.ru
    username: "{{ username_vc }}"
    password: "{{ password_vc }}"
    validate_certs: no
    cluster: "{{cluster}}"
    datacenter: "{{datacenter}}"
    name: "{{ name }}"
    state: poweredon
    folder: "/{{folder}}"
    template: "{{template}}"
    customization:
      hostname: "{{ name }}"
      domain: domain.ru
      dns_servers:
        - "{{ ipa1_dns }}"
        - "{{ ipa2_dns }}"
    networks:
      - name: "{{ network }}"
        type: static
        ip: "{{ip}}"
        netmask: "{{netmask}}"
        gateway: "{{gateway}}"
        wake_on_lan: True
        start_connected: True
        allow_guest_control: True
    wait_for_ip_address: yes
    disk:
      - size_gb: 1
        type: thin
        datastore: "{{datastore}}"
      - size_gb: 20
        type: thin
        datastore: "{{datastore}}"

እኛ የመጣነው ይህ ነው, ስርዓቱ መኖር እና መጎልበት ይቀጥላል.

  • አገልጋይ ለማቋቋም 17 ሊሆኑ የሚችሉ ሚናዎች። እያንዳንዱ ሚና የተነደፈው የተለየ አመክንዮአዊ ስራን ለመፍታት ነው (ምዝግብ ማስታወሻ ፣ ኦዲት ፣ የተጠቃሚ ፈቃድ ፣ ክትትል ፣ ወዘተ)።
  • የሚና ሙከራ። ሞለኪውል + የሙከራ ኢንፍራ.
  • የራሱ ልማት፡ CMDB + ኦርኬስትራ።
  • የአገልጋይ መፍጠሪያ ጊዜ ~ 30 ደቂቃ ነው ፣ አውቶማቲክ ነው እና በተግባር በተግባሩ ወረፋ ላይ የተመካ አይደለም።
  • በሁሉም ክፍሎች ውስጥ የመሠረተ ልማት አውታሮች ተመሳሳይ ሁኔታ / ስያሜ - የመጫወቻ መጽሐፍት ፣ ማከማቻዎች ፣ ምናባዊ አካላት።
  • ከመደበኛው ጋር አለመግባባቶች ላይ ሪፖርቶችን በማመንጨት የአገልጋዮችን ሁኔታ በየቀኑ ያረጋግጡ።

የእኔ ታሪክ በጉዞው መጀመሪያ ላይ ላሉት ጠቃሚ እንደሚሆን ተስፋ አደርጋለሁ። ምን አውቶሜሽን ቁልል ነው የምትጠቀመው?

ምንጭ: hab.com