Ìwé àkọsílẹ̀ ewu tí ó parí pẹ̀lú ìtòlẹ́sẹẹsẹ ìjìnlẹ̀ ń fún olùdarí ní ìdájọ́, kò sì fún ní ìgbésẹ̀ kankan. Ìdí nìyí tí ọ̀pọ̀ wọn fi ń padà wá pẹ̀lú «ẹ ṣé, mo kọ̀ ọ́ sílẹ̀» láìsí ohun mìíràn. Àwọn àkọsílẹ̀ tí a bá fọwọ́ sí ń pín ìrísí kan: ẹ̀sùn kan tí ó dín tí a lè yẹ̀wò, àṣàyàn méjì tí a dárúkọ pẹ̀lú iye owó, àti ènìyàn kan tí ó gbọdọ̀ dáhùn kí ọjọ́ kan tó dé. Gbogbo ohun tí ó wà nísàlẹ̀ yìí jẹ́ nípa dídá ìrísí yẹn, láìsọ àsọdùn ohun tí ẹ mọ̀.

Àmì ń dáhùn ìbéèrè tí ẹnikẹ́ni kò béèrè

Ìṣirò ìṣeéṣe ìlọ́po ipa ń ṣe nọ́mbà kan tí ó ń tò àwọn àwárí lẹ́sẹẹsẹ lórí ara wọn. Kò sọ fún olùdarí ohun tí ó yẹ kí ó fọwọ́ sí, ó sì ń pè ìjiyàn nípa olùpọ̀sí dípò ìpinnu nípa ẹnubodè. Mo ti rí i pé nọ́mbà ìfarahàn pẹ̀lú ìdá méjì gba ìpàdé kan mọ́lẹ̀ nígbà tí ìbéèrè gidi — bóyá a ó ná owó fún ìgbéga ní ìdámẹ́rìn-ín yìí — kò ní a béèrè rárá.

Ìpinnu gidi díẹ̀ péré ni ó wà ní ẹ̀ka yìí. Ná owó fún ìgbéga, gba ìfarahàn tí ó ní ààlà títí dé ọjọ́ tí a sọ, tàbí dín ẹni tí ó lè dé iṣẹ́ náà kù. Ọ̀kọ̀ọ̀kan ní olùbójútó àti iye owó ọ̀tọ̀ọ̀tọ̀, kò sì sí ọ̀kan nínú wọn tí ó jẹ́ «dín ewu kù ní ìpín 40».

Ìgbéga ìjìnlẹ̀ ń mú kí ìṣòro túbọ̀ burú. Nígbà tí gbogbo àwárí bá ṣe pàtàkì, ìtòlẹ́sẹẹsẹ yóò dáwọ́ pípín, olùkà yóò sì padà sí àmì kan ṣoṣo tí ó kù, ìyẹn ẹni tí ó ké jáde ní àríwo jù. Àkọsílẹ̀ tí ó sọ pé ẹ̀dá náà kò ní àtìlẹ́yìn, pé ìdámẹ́rìn-ín kejì ni èyí tí kò ní àtìlẹ́yìn, àti pé àwùjọ òṣìṣẹ́ kan gbẹ́kẹ̀ lé e, wúlò ju àmì pupa lọ.

Àìdánilójú ni ìkùnà mìíràn. «VPN kò ní ààbò» kò lè yanjú, nítorí kò sọ ìmúṣẹ wo, ẹ̀dá wo, tàbí ẹni tí ó lè dé ohun wo. Gbolohun tí olùkà lè yẹ̀wò ni ìpín tí ó kéré jù nínú ìròyìn tí ó wúlò.

Dín ẹ̀sùn náà kù títí ẹnìkan yóò fi lè yẹ̀wò rẹ̀

So ẹ̀sùn náà mọ́ ààlà tí a tẹ̀ jáde, kì í ṣe èròǹgbà. Jíjáde kúrò nínú àtìlẹ́yìn olùpèsè, ìgbésẹ̀ ìjẹ́rìí tí ó pọn dandan tí ó sọnù, tàbí jíjẹ́ àṣeyọrí láti apá nẹ́tíwọ́kì tí kò yẹ kí ó rí i — gbogbo wọn jẹ́ ẹ̀sùn tí ìdánwò wà lẹ́yìn. Fún èkíní, ìdánwò ni àṣẹ mẹ́ta lórí ẹnubodè náà fúnra rẹ̀:

openvpn --version | head -n 1
dpkg-query -W -f='${Version}\n' openvpn
openssl x509 -in /etc/openvpn/server.crt -noout -enddate

Ìlà ẹ̀dá àti ìbéèrè àpò máa ń bá ara wọn mu, nígbà tí wọn kò bá sì bá ara wọn mu, ẹ ti rí ìṣòro kejì tí ó yẹ fún ìròyìn ọ̀tọ̀ọ̀tọ̀. Ọjọ́ ìparí ìwé-ẹ̀rí ni pápá tí àwọn ènìyàn máa ń gbàgbé láti yẹ̀wò títí àwọn alábàáṣepọ̀ yóò fi kùnà láti so pọ̀, ó sì wà nínú àfikún ẹ̀rí kan náà pẹ̀lú okùn ẹ̀dá.

Kọ ibi tí gbogbo ìjáde ti wá àti ìgbà tí a gbà á. Àkọsílẹ̀ tí ó sọ pé «ẹnubodè gw1, a kó ní ọjọ́ Ìsẹ́gun» ni ẹni tí ó ń ṣiyèméjì lè tún ṣe; àwòrán ojú-ìwé tí a gé dé ìlà tí ó fani mọ́ra kò lè ṣe bẹ́ẹ̀. Yọ àwọn kọ́kọ́rọ́, àdírẹ́sì àdáni àti orúkọ àkọsílẹ̀ kúrò kí fáìlì tó kúrò nínú ẹ̀rọ rẹ.

Kọ àkọsílẹ̀ náà gẹ́gẹ́ bí yíyàn láàárín àwọn àṣàyàn tí a dárúkọ

Àkọsílẹ̀ ìpinnu kúrú nítorí pé iṣẹ́ kan ni ó ń ṣe. Èyí ni ìrísí tí mo ń lò, tí a kọ fún àjọ aládàáṣe kan tí a hùmọ̀ tí ẹ̀dá ìwọlé jíjìnnà rẹ̀ kúrò nínú àtìlẹ́yìn:

Ask: approve one of two upgrade paths for remote access before 30 June.
Claim: gw1 runs a release that left vendor support in January.
Evidence: version output and vendor notice, attached, collected 14 March.
Option A: upgrade in place, one maintenance window, staff on the current client build.
Option B: replace the gateway, two windows, client reinstall for 180 staff.
Cost of waiting: no security fixes for a service 180 staff use daily.
Owner: platform team. Decision needed from: IT director, by 28 March.

Ìlà kọ̀ọ̀kan yẹ sí ipò rẹ̀. Ìbéèrè náà jẹ́ gbolohun kan, ó sì ní ọjọ́ kan nínú. Ẹ̀sùn náà lè yẹ̀wò. Àṣàyàn B wà kí àṣàyàn A lè jẹ́ yíyàn kì í ṣe àṣà, ó sì dárúkọ àtúnṣe alábàáṣepọ̀ nítorí pé ìyẹn ni iye owó tí àwọn ènìyàn ń fojú rọ́. Iye owó ìdúró ń ṣàpèjúwe ìyọrísí, kì í ṣe ìṣeéṣe.

Line in the noteWhat it prevents
Ask with a dateA reply of "agreed in principle" that funds nothing
Claim with a command behind itA debate about whether the problem is real
Two options with different costsA single proposal that can only be approved or refused
Named decision ownerA thread where everyone assumes someone else signed

Ohun tí àkọsílẹ̀ náà kò gbọdọ̀ ṣe ni kí ó fi àbájáde tí ẹ kò lè gbèjà lé lọ́wọ́ wọlé lẹ́ẹ̀kọ̀ọ̀kan. Bí a kò bá fi ìrúfin hàn, sọ ọ́ ní ìlà kan, nítorí olùkà tí yóò ṣàwárí àsọdùn nígbà tó ń bọ̀ yóò tún dín àwọn àkọsílẹ̀ mẹ́ta tí ó tẹ̀lé kù.

Ohun tí gbígbà ewu gbọdọ̀ ní

Gbígbà kì í ṣe àìsí ìpinnu, kì í sì í ṣe ìdákẹ́jẹ́. Bí ìdáhùn bá jẹ́ kí a gbé pẹ̀lú ìfarahàn náà fún ìgbà díẹ̀, àkọsílẹ̀ náà nílò àfikún mẹ́ta: ọjọ́ ìparí, ìgbésẹ̀ àbójútó tí ẹnìkan ń ṣe ní gidi, àti ènìyàn tí a dárúkọ tí yóò tún ìbéèrè náà ṣí nígbà tí ọjọ́ bá dé.

Ìṣàkóso ìgbà díẹ̀ nílò ìtọ́jú kan náà. Dídín iṣẹ́ náà kù sí ẹgbẹ́ kékeré ń dín ìfarahàn kù nígbà tí a bá ń mú ààlà náà ṣiṣẹ́ níbìkan tí ẹnìkan sì ń tọ́jú àkọsílẹ̀ náà. Àdínà tí ó ń dá iṣẹ́ ẹ̀wẹ̀ alẹ́ dúró ní ìdákẹ́jẹ́ kì í ṣe ìṣàkóso, ìjákulẹ̀ ni pẹ̀lú ìwé tí ó dára jù.

Ya olùbójútó ìyípadà àti olùbójútó ìpinnu sọ́tọ̀ nígbà tí wọ́n jẹ́ ènìyàn ọ̀tọ̀ọ̀tọ̀. Ẹgbẹ́ pẹpẹ ń ṣiṣẹ́; olùdarí ń gbà. Kíkọ orúkọ méjèèjì sínú àkọsílẹ̀ ń yọ ìdúró tí ó wọ́pọ̀ jù kúrò: ètò tí a múra dáadáa tí ó ń dúró de ẹni tí kò tíì rí i rí.

Yẹ̀wò àkọsílẹ̀ náà lórí ìmúṣẹ kí o tó rán an

Àwọn ẹ̀sùn máa ń gbó, wọ́n sì ń di àtijọ́ nínú àwọn àjọ tí ó ní ẹnubodè ju ọ̀kan lọ. Àwárí tí a dà sílẹ̀ láti inú okùn fọ́rọ́mù nípa ẹ̀dá mìíràn, tàbí láti inú ẹ̀rọ tí a tún kọ́ ní oṣù tí ó kọjá, ni a ó tako nínú ìpàdé, àkọsílẹ̀ tó kù yóò sì lọ pẹ̀lú rẹ̀. Tún ẹ̀rí náà ṣe lórí gbogbo ẹ̀rọ tí àkọsílẹ̀ náà dárúkọ:

for h in gw1 gw2; do
  ssh "$h" 'openvpn --version | head -n 1; systemctl is-active openvpn@server'
done

Bí ẹ̀rọ méjì náà kò bá fohùn ṣọ̀kan, àkọsílẹ̀ náà wà nípa ẹgbẹ́ tí ó dàpọ̀ báyìí, èyí tí ó jẹ́ àwárí mìíràn tí ó sì sábà ń yanilójú jù. Bí iṣẹ́ náà kò bá ṣiṣẹ́ lórí ẹ̀rọ tí ẹ rò pé ó ń ṣe ìrìnàjò, dúró kí ẹ sì tún àkójọ náà ṣe kí àkọsílẹ̀ tó lọ síbikíbi.

Lẹ́yìn náà so ìjáde náà mọ́, fi ọjọ́ ìpinnu sínú ìlà kókó-ọ̀rọ̀, kí o sì rán an sí ẹni tí ó lè sọ bẹ́ẹ̀ẹ́ dípò sí ẹgbẹ́ tí yóò jíròrò rẹ̀. Bí ìdáhùn bá padà wá gẹ́gẹ́ bí «kì í ṣe báyìí», béèrè ọjọ́ tí yóò di «báyìí» kí o sì kọ ọjọ́ yẹn sínú ẹ̀dá àkọsílẹ̀ tí ó tẹ̀lé.

Àwọn àpilẹ̀kọ tó jọra