Automating orbis postea cum Ansible

Automating orbis postea cum Ansible

Hi omnes. Administrator systematis principalis in OK laboro et responsalis sum operationi portalis stabilis. Loqui volo quomodo processum aedificavimus ad orbis reponens automatice, et quomodo administrator ab hoc processu exclusimus eumque autocineto substituimus.

Hic articulus est quaedam translatio spectaculis at HighLoad + MMXVIII "

Aedificationem orbis postea processus

Primum aliqui numeri

Bene est gigans muneris usus per millions hominum. Colitur ab circiter 7 milibus servientium, quae in 4 diversis centris notitiis collocantur. Servientes plus quam 70 milia orbis continent. Si eas super se ACERVUS, turrem plus quam 1 km altam accipis.

Durus agitet sunt ministri componentis, qui plerumque deficit. Talibus voluminibus mutare debemus circiter 30 orbes per hebdomadam, et haec ratio non admodum iucunda facta est exercitatione.

Automating orbis postea cum Ansible

Incidents

Societas nostra induxit administrationem incidentes plenae armaturae. Singula res in Jira memoramus, et deinde exponimus et explicamus. Si res effectum habuit in utentibus, certa simul et cogitandum est quomodo in talibus respondeat citius, quam effectum reducere, utique ne recursus.

Repono machinis nulla exceptio. Status eorum a Zabbix monitored est. Monitor nuntios in Syslog pro scribe/legere errores, statum HW/SW excursiones, monitor SMART analyse, et lapsum pro SSDs computa.

Ut ante mutati sunt disks

Cum felis in Zabbix occurrit, incidens in Jira creatur et automatice ad machinas opportunis in notitiis centris assignata sunt. Hoc facimus cum omnibus HW incidentibus, id est, iis, quae opus aliquod corporis in instrumento instrumenti egent.
Media ingeniarius homo est qui quaestiones ad hardware relatas resolvit et responsabilis est de servitoribus instituendis, servandis, deponendis. Accepta tessera, fabrum ad opus accipit. In disci crusta mutat orbes independenter. Si vero ad debitam machinam accessum non habet, fabrum ad administratores systematis officii auxilium flectit. Primum, orbem a rotatione removere debes. Ad hoc faciendum, necessarias mutationes in servo facere debes, applicationes cessare et orbem intendere.

Systema administratoris officii obligat operationem totius portae in opere trabea. Investigat incidentes, reparat facit, tincidunt parvas functiones adiuvat perficiendas. Non agit nisi duris agitet.

Antea, notitia media fabrum communicavit cum administratore systematis per chat. Machinarii nexus cum Jira tesseras miserunt, administrator eos secutus est, index operis in aliquo nota servavit. Sed sermones tali officio sunt incommodi: indicium ibi non est exstructum et cito amittitur. Et administrator simpliciter ambulare a computatro et petitionibus respondere non potuit per aliquod tempus, cum fabrum stetisset in servo cum tasso orbis et expectavit.

Sed gravissimum erat quod administratores totam picturam non viderunt: quae res orbis exstiterunt, ubi quaestio potentia oriri potuit. Hoc ob factum est omnia HW ad fabrum incidentia delegare. Ita, omnes casus in ashboardday administratoris ostendere potuit. Sed multa sunt eorum, et administrator eorum tantum fuit.

Praeterea architectus potiores recte instituere non potuit, quia nihil scit de proposito certorum servientium vel informationum inter distributiones agit.

Novum tortor procedure

Primum quod fecimus, omnia orbis incidents in genus distinctum "HW orbis" movere et agros "sizeti nominis fabrica", "magnitudinem" et "orbis genus" addiderunt, ei ut haec notitia in tessera reconderetur et vellet. non assidue in chat permutantur.

Automating orbis postea cum Ansible
Constat etiam nos in una incidenti solum unum orbem mutare volumus. Hoc signanter simpliciorem fecit processum automationis, collectionem statisticam et laborem in futuro.

Praeterea agrum "administratorem responsalem" addidimus. Systema administratoris officii eo ipso inseritur. Hoc valde commodum est, quod nunc fabrum semper videt qui curam habet. Nihil opus est ad fastos accedere et quaerere. Hic campus effecit ut tesseras in ashboardday administratoris eius auxilium egeret.

Automating orbis postea cum Ansible
Ut omnes participes maximae utilitates ex innovationibus accepissent, Filtra et dashboards creavimus et guys de illis narravimus. Cum homines mutationes intelligunt, non se distant sicut superfluum; Praestat architectus scire eculeum numerum ubi minister sita est, magnitudinem ac genus orbis. Administrator in primis indiget ut intelligat quaenam catervae ministrorum hic sit et quis effectus sit, cum in reposito orbis terrarum.

Praesent scelerisque, purus et volutpat commodo, nisi ex egestas libero. Ad hoc faciendum opus erat mutare.

Antea sic erat;

Automating orbis postea cum Ansible
Ita hodie operari pergunt cum administratore auxilio non egent.

Primum est novum statum inducere fecimus investigate. Tessera in hoc statu est quando fabrum nondum constitutum est utrum administratore indigeat necne. Per hunc statum, architectus tesseram administratoris transferre potest. Praeterea hoc statu utimur ad tesseras notandas cum orbis reponi debet, sed ipsum orbis situm non est. Hoc accidit in locis CDNs et remotis.

Nos quoque status additae paratus. Tessera translata est post repositum orbis. Hoc est, omnia iam facta sunt, sed HW/SW RAID synchrona est in calculonis. Hoc satis diu capere potest.

Si administrator in opere versatur, ratio paulo implicatior fit.

Automating orbis postea cum Ansible
Ex status Patefacio Tessera tam administratoris quam machinalis interpretari potest. In status In progress Administrator orbem a rotatione removet ut architectus simpliciter eum evellere possit: vertit in backlight, incedit disco, applicationes prohibet, secundum speciem servientium coetus.

Tessera deinde transfertur Promptus ad mutare: Signum est fabro quod disci evelli potest. Omnes agri in Jira iam repleti sunt, architectus novit qualem orbis rationem et magnitudinem. Haec notitia statim in statum priorem vel ab administratore intratur.

Postquam reposuit orbis, tessera status mutatus est mutata. Inhibet ut recte inscriptum est disci, partitione facto, applicatio emissa est et quaedam operae receptae notitiae emittuntur. Potest etiam tessera ad statum transferri paratushoc in casu administrator responsabilis remanebit, quod in orbem versatur. Totum schema sic videtur.

Automating orbis postea cum Ansible
Agros novos addit vitam nostram multo facilius. Guys indiciis structuris laborare coeperunt, quidnam fieri oporteat et quo statu clare patuit. Priores partes multo magis pertinentes factae sunt, cum ab administratore nunc instituuntur.

Curabitur eget nulla est. Utique administrator scribere potest fabrum "hoc opus citius restitui", aut "iam vesperi est, tempus erit illud reponere?" Sed non amplius quotidie in confabulationibus de his rebus communicamus.

Orbis in batches mutari coepit. Si administrator parum mature laborare venerit, otium habet et nihil adhuc factum est, plures ministros pro reposito parare potest: agros imple, orbis a rotatione remove et negotium ad fabrum transferre. In paulo post ingeniarius ad centrum datorum venit, negotium videt, necessarias pellit e horreis sumit et statim eas reponit. Quam ob rem postea rate postea crevit.

Lectiones didicit cum aedificaretur Workflow

  • Cum procedendi rationem construendi, informationes ex diversis fontibus colligere debes.
    Nonnulli administratores nostri non noverunt ipsum ipsum mutare orbis ipsum. Nonnulli putant MD RAID synchronisationi a fabrum tractatam esse, etsi quidam eorum ne accessum quidem facere putaverunt. Quidam praecipui fabrum hoc fecerunt, sed non semper, quia processus nullibi descriptus erat.
  • Ratio simplex et comprehensibilis debet esse.
    Difficile est homini multos gradus in animo retinere. Praecipuae status finiti- marum in Jira ponentur in summa screen. Eas nominare potes, exempli gratia, in progressu Promptus ad mutationem vocamus. Et aliae status possunt latere in tabula demissa ut non sint oculi. Sed melius est non circumscribere homines, iis occasionem transitus faciendi.
    Explica valor innovationis. Cum homines intellegunt, magis accipiuntur novi procedendi. Multum interest nobis ut non per totum processum deprimamus, sed sequamur. Tum automation de hoc edificavimus.
  • Exspecta, resolve, effice.
    Nobis circa mensem ad aedificandum modum procedendi, exsecutionem, conventus et discussiones cepit. Plus tres menses et exsecutionem sumit. Vidi quomodo homines tardius incipiant innovatione uti. Multum negativity in primis. Sed ipsa agendi ratio eiusque exsecutio technica omnino independens erat. Exempli causa, unus administrator Jira non usus est, sed Jira plugin in Confluence, et quaedam res ei praesto non sunt. Jira ei demonstravimus, et productivity admin auctus tam pro muneribus generalibus quam pro orbis reponens.

Automation orbis postea

Accessimus automationem orbis postea aliquoties. Iam progressiones et scripta habuimus, sed omnia operata sunt vel interactive vel manually et deducendo requiritur. Et solum postquam novum processum induxit, intelleximus hoc prorsus esse quod deessemus.

Cum nunc processus substitutionis noster in periodos dividitur, quorum unumquodque habet specificum actum et indicem actionum, in gradibus automatis efficere possumus, et non simul. Exempli gratia, scaena simplicissima - Paratus (reprehendendo RAID/data synchronisation) facile delegari potest bot. Cum autocinetum parum didicit, negotium maius dare potes - orbem in gyrationem ponens, etc.

Zoo setups

Antequam de autocineto loquimur, brevem excursionem in ferarum officinarum nostrarum sumamus. Imprimis, pro magnitudine infrastructurae giganteae. Secundo conamur configurationem meliorem eligere pro singulis servitiis hardware. Exempla circa XX ferramenta INCURSUS habemus, plerumque LSI et Adaptec, sed etiam HP et DELL variarum versionum adsunt. Quisque PROCURSUS moderatorem suam utilitatem administratio habet. Praecepta mandatorum et editae eorum a versione ad versionem differre possunt pro singulis RAID moderatoris. Ubi HW-RAID non adhibetur, mdraid adhiberi potest.

Omnes fere novae officinae sine orbis tergum facimus. Non amplius hardware et software INCURSIO uti conamur, cum systemata nostra in gradu centrum datae, non ministrantes revocamus. Sed sane multi sunt servi qui legatum sustentari necesse est.

Alicubi orbis in INCURSIO moderatoris ad rudis machinas transferuntur, alicubi JBODs adhibentur. Configurationes exstant cum uno orbe systematis in calculonis, et si reponi debet, tunc servo restituo cum institutione OS et applicationes earumdem versionum, adde fasciculos configurationis, applicationes launch. Multum etiam sunt coetus deserviens ubi tergum exercetur non in gradu subsystem orbis, sed directe in ipsis applicationibus.

In summa, supra 400 circulos unicos ministros habemus centum applicationes diversarum fere currentium. Ad tam ingentem numerum optionum operiendum, instrumentum multifunctionalis automationis opus est. Potius cum simplici DSL, ut non solum is qui scripsit id confirmet.

Elegimus Ansible quia agens est: non opus erat ut infrastructuram parare, initium velox. Praeterea in Pythone scribitur, quod pro signo in quadrigis accipitur.

generalis schematic

Inspice rationem automationem generalem utendo uno incidenti in exemplo. Zabbix detegit sdb disci defecisse, felis accendit et tessera in Jira creata est. Administrator id vidit, intellexit non esse duplicatam et non falsam affirmativam, id est, disci mutari opus esse, ac tesseram ad In progressu transtulisse.

Automating orbis postea cum Ansible
Applicatio Diskobot, in Pythone scripta, intervenit Jira pro novis tesserarum capitum. Animadvertit novam tesseram in progressu apparuisse, sequelam respondentem Urguet, quae fabulae in Ansible immittit (hoc pro quolibet statu in Jira factum est). In hoc casu, Prepare2change immissa est.

Ansible ad exercitum mittitur, disci a rotatione removet et statum ad applicationem per Callbacks refert.

Automating orbis postea cum Ansible
Ex eventibus, automata automatice tesseram ad mutandam promptam transfert. Praefectus notificationem accipit et ad disci mutat, postquam tesseram commutatam transfert.

Automating orbis postea cum Ansible
Secundum schema de quo supra, tessera redit ad autocinetum, quod alterum playbook immittit, ad militiam accedit et in orbem in gyrationem ponit. Bot tessera claudit. euge!

Automating orbis postea cum Ansible
Nunc de nonnullis systematis partibus fama est.

Diskobot

Id Pythone scriptum est. Tesseras ex Jira eligit secundum JQL. Secundum statum tesserae, hic accedit ad tractatorem respondentem, qui vicissim ansible playbook statui respondens respondet.

JQL intervalla datorum in applicatione configurationis lima definiuntur.

jira_states:
  investigate:
    jql: '… status = Open and "Disk Size" is EMPTY'
    interval: 180

  inprogress:
    jql: '…  and "Disk Size" is not EMPTY and "Device Name" is not EMPTY'
 
  ready:
    jql: '… and (labels not in ("dbot_ignore") or labels is EMPTY)'
    interval: 7200

Exempli gratia, inter tesseras in In progressu status, solum illae cum magnitudine Orbis et nomine agri repleti sunt in fabrica delecti sunt. Fabrica nomen est nomen machinae scandali ad exercendum playbook opus. Magnitudo orbis necessaria est ut architectus sciat quanta orbis magnitudine opus sit.

Et inter tesseras cum statu prompto, tesserae cum pittacio dbot_ignore eliquatae sunt. Obiter utimur Jira label tum pro huiusmodi eliquare et pro tesseras duplicatas notare et statisticas colligere.

Si playbook deficit, Jira label dbot_defecit ut postea enucleari possit.

Interoperability cum Ansible

Communicat applicatio cum Ansible via Ansible Python API. Ad playbook_executorem transimus nomen tabella et variabilium copia. Hoc tibi permittit ut Ansible project in forma imaginum yml regularium custodias, quam in Pythone codice describens.

Etiam in Ansible, via extra_vars, nomen figmenti, tesserae status, tum callback_url, quae exitus clavis continet - pro callback in HTTP ponitur.

Pro unaquaque launch, inventarium temporale generatur, constans ex una hostia et coetu, ad quem hospes pertinet, ita ut coetus_vars applicantur.

Hic est exemplum operis quod callback instrumenti HTTP.

Eventum obtinemus fabularum exequendi utens callaback(s). Duo sunt genera;

  • Ansible callback plugin, praebet notitias de exitu fabularum executionis. Negotium describit, quae deductae sunt, feliciter vel infeliciter peractae. Hoc callback appellatur cum playbook ludens finivit.
  • HTTP callback ut informationes recipias dum playbook ludens. In munere Ansible petimus post/GET postulationem nostram applicationis.

Variationes per HTTP callback(s) latae sunt quae in executione fabularum definitae sunt et quae in sequentibus fugit uti volumus servare. Data in sqlite scribimus.

Etiam commentationes relinquimus ac tesseram status per HTTP callback mutamus.

HTTP callback

# Make callback to Diskobot App
# Variables:
#    callback_post_body: # A dict with follow keys. All keys are optional
#       msg: If exist it would be posted to Jira as comment
#       data: If exist it would be saved in Incident.variables
#       desire_state: Set desire_state for incident
#       status: If exist Proceed issue to that status

  - name: Callback to Diskobot app (jira comment/status)
    uri:
      url: "{{ callback_url }}/{{ devname }}"
      user: "{{ diskobot_user }}"
      password: "{{ diskobot_pass }}"
      force_basic_auth: True
      method: POST
      body: "{{ callback_post_body | to_json }}"
      body_format: json
    delegate_to: 127.0.0.1

Sicut multa opera eiusdem generis, eam in communi tabella separatim includimus et, si opus sit, includamus, ne in libris fabularum constanter repetamus. Hoc callback_ URL includit, quae exitum clavem et nomen hospitis continet. Cum Ansible hanc postulationem Postulationem exequitur, bot intellegit eam partem talem et talem incidentem venisse.

Et hic est exemplum fabularum, in quo orbem ex artificio MD outputamus:

  # Save mdadm configuration
  - include: common/callback.yml
    vars:
      callback_post_body:
        status: 'Ready to change'
        msg: "Removed disk from mdraid {{ mdadm_remove_disk.msg | comment_jira }}"
        data:
          mdadm_data: "{{ mdadm_remove_disk.removed }}"
          parted_info: "{{ parted_info | default() }}"
    when:
      - mdadm_remove_disk | changed
      - mdadm_remove_disk.removed

Hoc negotium tesseram Jira transfert ad statum "Ad mutationem" et commentarium addit. Item, mdam_datae variabiles thesaurorum index machinarum md e quibus orbis remotus est et partitio TUBER a diviso partita.

Cum architectus novum orbem iniicit, his variabilibus uti possumus ad partitionem dump restituendam, ac etiam disco in machinas md e quibus remotum est inserere.

Ansible reprehendo modus

FORMIDULOSUS ad automationem conversus erat. Ideo omnes playbooks in modo decurrere decrevimus
siccum currerein qua Ansible non facit aliquas actiones ministrantibus, sed tantum emulat.

Talis Lorem discurrit per callbackum separatum moduli, et effectus fabulae exsecutionis in Jira tamquam commentarium servatum est.

Automating orbis postea cum Ansible

Uno modo, hoc effecit ut opus librorum autocineticorum et plays convalidaretur. Secundo fiduciam administratorum augebat in bot.

Cum convalidandum praeterivimus et intelleximus te Ansible non solum in sicco currendi modo currere posse, diskobot puga in Jira currere fecimus, ut eandem playbook cum eisdem variabilibus in eodem exercitu, sed in modo normali immittendi.

Praeterea, puga playbook sileo ut si inruerit adhibeatur.

Playbooks structure

Iam commemoravi quod secundum statum tesserae Jirae, autocinetum varias fabularum libros movet.

Primum, multo facilius est introitum instituere.
Alio modo, secundum quod est necessarium simpliciter.

Exempli gratia, cum orbis systematis reponat, primum opus est ut ad systema instruere, negotium crea, et post rectam instruere, server accessibilis per ssh fiet, et applicationem in eam evolvere potes. Si haec omnia in uno playbook fecerimus, tunc Ansible illud debitum perficiendo exercitui pervulgato non posset.

Munera Ansible pro singulis sodalitatibus utimur. Hic videre potes quomodo fabulae fabulae in una earum ordinentur.

Automating orbis postea cum Ansible

Quod quidem convenit, quia statim patet ubi quae locantur munia. In main.yml, quod est initus ad munus Ansible, simpliciter includere possumus per tesseram status seu officia generalis pro omnibus quae requiruntur, exempli gratia, identificatio transeuntis vel tessera accipienda.

investigation.yml

Currit tesseras in Investigatione et Status Open. Maxime ob hoc playbook nomen fabrica obstructionum est. Haec notitia semper praesto est.

Ad eam obtinendam, summatim Jira resolvemus, ultimum valorem e felis Zabbix. Contineat nomen clausus fabrica - felix. Vel punctum aggerem contineat, tunc debes servo ire, parse et orbis requisiti computa. Felis potest etiam inscriptionem scsi vel aliam informationem mittere. Sed etiam accidit ut non sint extare, et tibi resolvere.

Invento nomine artificii obstructionum, informationes colligimus de genere et magnitudine orbis inde ad agros in Jira implendos. Etiam informationes de venditoris, exemplaris, firmware, ID, DOLOR removemus, et haec omnia in commentarium in Jira tessera inseremus. Administrator et praefectus fabrum non iam necesse est hanc notitiam investigare. πŸ™‚

Automating orbis postea cum Ansible

prepare2change.yml

Discus e rotatione removens, postea parat. Difficillima ac difficilior aetas. Hoc est ubi applicationes prohibere possis, cum sistendum non est. Vel eximito disco quod replicas non satis habuit, et hoc effectum habet in utentibus, aliqua notitia amissa. Plurima hic habemus notificationes et notificationes in chat.

In casu simplicissimo loquimur de orbe removendo ab HW/MD RAID.

Pluribus in adiunctis implicatis (in nostris systematibus repono), cum tergum exercetur in gradu applicationis, debes ad applicationem per API ire, disco output referre, illud deactivate et recuperare incipias.

Nunc migramus obuiare nubeset si ministrans est nubilus substructio, Diskobot appellat nubem API, dicit hoc opus facturum esse cum hoc ministerio - servo vasis currentis - et quaerit "omne vascula ex hoc ministro migrare". Eodemque tempore in backlight orbis volvitur ut fabrum statim videre possit quem extrahi oporteat.

changed.yml

Post repositoque disco, primum eius disponibilitatem inspicimus.

Machinatores non semper novas agitationes instituunt, ideo perscriptio addita pro bonis quae nobis satisfaciunt SCITUS.

Quae attributa spectamus?Reallocated Sectores Comitis (5) <100
Current nibh Sector Comes (107) == 0

Si coegi defecerit experimentum, fabrum notificatur ut iterum reponat. Si omnia in ordinem rediguntur, priora versipellis notae applicantur et discus in gyrum mittitur.

ready.yml

Simplicissimus casus: inhibitio HW/SW synchronisation escensio vel notitia finita synchronisation in applicatione.

application API

Saepius nominavi saepe accessiones APIs applicationis autocinetica. Utique non omnes applicationes methodi necessarias habebant, ita quod mutari debebant. Hic praecipuae rationes utimur:

  • Status. Status botri an disci ad intelligendum an elaborandum sit;
  • Satus/stop. Disk activation/deactivation;
  • Profugus/restituo. Data migratio et recuperatio durante et repositum.

Lectiones ab Ansible

Ego vere Ansible amo. Sed saepe, cum diversa incepta opens aspicio et vide quomodo homines fabularum libros scribant, parum pertimesco. Complexae logicae connexiones cum / loop, defectus flexibilitatis et idempotentia ob crebrum usum testae/imperii.

Statuimus omnia quam maxime simpliciorem reddere, opportunitate Ansible - modularitate. In supremo gradu libri fabularum exstant, ab aliquo administratore scribi possunt, pars tertia, quae parum Ansible scit.

- name: Blink disk
  become: True
  register: locate_action
  disk_locate:
      locate: '{{ locate }}'
      devname: '{{ devname }}'
      ids: '{{ locate_ids | default(pd_id) | default(omit) }}'

Si logica aliqua difficilis est efficiendi in fabularum libris, eam in modulum ansibilis vel colum movemus. Scripta Pythone aut alia quavis lingua scripta esse possunt.

Faciles sunt et prompti ad scribendum. Exempli gratia, orbis backlight modulus, cuius exemplum supra ostenditur, ex 265 versibus constat.

Automating orbis postea cum Ansible

In ultimo est bibliotheca. Ad hoc consilium separatum applicationis scripsimus abstractionem quandam super ferramentis et programmatibus quae debitae petitiones exercent.

Automating orbis postea cum Ansible

Vires maximae Ansible sunt eius simplicitas et perspicua fabularum libri. Credo te hoc uti debes et limas yaml FORMIDULOSUS non generare et ingentem conditionum numerum, codicem testam et ansas.

Si experientiam nostram cum Ansible API repetere vis, duas res in animo habe;

  • Executor et librorum fabularum generatim tempus opportunum reddi non possunt. Tempus est in sessione ssh, sed non est timeout in playbook. Si orbem conamur transcendere quod in systemate non diutius existit, fabularum fabula sine fine mittetur, sic in fasciculo separato involvere debebamus et cum repositorio occidimus.
  • Processus bifurci ansibilis currit, ideo API eius stamina non tuta est. Currimus omnes nostrorum playbooks simplici-filati.

Quam ob rem postea circiter LXXX% orbis terrarum reponendam automate potuimus. Super, postea rate duplicavit. Hodie administrator iustus incidentes spectat et iudicat num orbis mutari debeat necne, et tunc unum strepita facit.

Sed iam incipimus in aliam quaestionem currere: quidam novi administratores nesciunt quid velit mutare. πŸ™‚

Source: www.habr.com