Deir Ansible go bhfuil sé tosaithe, ach tá WireGuard fós ag rith an tseanchumraíochta
Fágann state: started aonad atá ag rith cheana féin, mar sin ní chuirtear wg0.conf athscríofa i bhfeidhm riamh. Cuir handler athraithe leis agus ansin déan comparáid idir an gléas beo agus an comhad.
Críochnaíonn an playbook go glas, tá aonad WireGuard gníomhach, oibríonn an handshake, agus ní shroicheann an peer nua rud ar bith. Is frustrating ar leith é playbook a fheiceáil ag tuairisciú ratha agus an freastalaí ag rith chumraíocht an lae inné, mar níl aon rud mícheart san aschur. Rinne Ansible go beacht an rud a iarradh air: chinntigh sé go raibh an t-aonad tosaithe, agus bhí sé tosaithe cheana féin. Tasc eile is ea comhad cumraíochta athscríofa a chur i bhfeidhm, agus ní tharlaíonn sé ach amháin má iarrann rud éigin ar an tseirbhís é a léamh arís.
Féach cad a thuairiscíonn an dara rith i ndáiríre
Rith an playbook faoi dhó leis an chumraíocht athraithe ina háit agus déan comparáid idir an achoimre. Ba cheart don dara rith tasc an aonaid a thaispeáint mar ok, ní mar changed, mar fágtar seirbhís atá ag rith cheana féin i suaimhneas de réir dearaidh. Sin idempotence ag obair i gceart, agus sin an fáth freisin nach sroicheann an comhad nua an kernel riamh.
Cuir rith seiceála le haschur diff leis chun a fheiceáil cé na tascanna a dhéanfadh teagmháil le rud ar bith.
ansible-playbook -i inventory site.yml --check --diff
systemctl show wg-quick@wg0 -p ActiveEnterTimestamp -p NRestarts
stat -c '%y %n' /etc/wireguard/wg0.confInsíonn na trí stampa ama an scéal sula léann tú líne log amháin. Má tá an comhad cumraíochta níos nuaí ná an nóiméad a tháinig an t-aonad chun bheith gníomhach, tógadh an comhéadan atá ag rith ó chomhad níos sine, agus leanann gach symptom ina dhiaidh sin as sin.
Ní locht ar Ansible é sin. Feictear an iompar céanna le haon uirlis bainistíochta cumraíochta a dhealaíonn «déan cinnte go bhfuil sé ag rith» ó «déan cinnte go bhfuil sé ag rith seo». Breathnaíonn an t-idirdhealú pedanta go dtí go gcosnaíonn sé tráthnóna ort.
Is staid é tosaithe, ní athlódáil
Deir state: started coinníoll faoin aonad. Ní gheallann sé go léifidh an tseirbhís a cuid ionchur arís, agus ní féidir leis a fhios a bheith aige go bhfuil comhad nár oscail sé riamh athraithe. I n-imscaradh wg-quick cuimsíonn na hionchuir cumraíocht an chomhéadain, na seoltaí, na bealaí, na hiontrálacha DNS agus aon hooks post-up.
Sin an fáth a bhféadfadh comhad nuashonraithe peer nua, seoladh eile nó treoir ródaithe athraithe a bheith ann agus an comhéadan beo fós ag freastal ar an seanchomhlacht. Éiríonn leis an handshake fós mar tá na heochracha agus na críochphointí luchtaithe fós bailí. Sin go beacht an rud a fhágann an teip deacair le feiceáil, agus an fáth a ritheann daoine i ndiaidh DNS ar feadh uaire sula seiceálann siad stampa ama.
Glactar le dhá rogha eile den mhodúl mar réiteach go minic. Cuireann daemon_reload ar systemd comhaid aonaid a léamh arís, rud nach mbaineann le comhad cumraíochta WireGuard. Iarrann state: reloaded ar an aonad a ghníomh athlódála a rith, agus braitheann sé go hiomlán ar an aonad an ndéanann sé sin an rud a theastaíonn uait. Ní thagann ceachtar acu in áit a fhios a bheith agat cé na hionchuir a léigh an próiseas atá ag rith i ndáiríre.
Suiteáil an comhad, ansin cuir handler ar an eolas
Is é an patrún a choinníonn idempotence agus a chuireann athruithe i bhfeidhm ná an gnáthcheann: cuireann an tasc a scríobhann an comhad handler ar an eolas, agus ní ritheann an handler ach amháin nuair a athraíodh an comhad i ndáiríre. Ní dhéanann an dara rith gan eagarthóireacht rud ar bith, agus sin a theastaíonn uait.
- name: write the interface configuration
ansible.builtin.template:
src: wg0.conf.j2
dest: /etc/wireguard/wg0.conf
owner: root
mode: "0600"
notify: apply wg0
- name: ensure the interface unit is enabled
ansible.builtin.systemd_service:
name: wg-quick@wg0
enabled: true
state: started
- name: apply wg0
listen: apply wg0
ansible.builtin.systemd_service:
name: wg-quick@wg0
state: restartedRitheann handlers ag deireadh an play, tar éis na dtascanna a chuir ar an eolas iad, mar sin féadfaidh tasc níos déanaí sa play céanna an seanchomhéadan a fheiceáil fós. Má tá ord tábhachtach, folmhaigh na handlers go sainráite le meta: flush_handlers roimh an tasc a bhraitheann ar an chumraíocht nua.
Úsáid restart seachas reload mura bhfuil gníomh athlódála an aonaid fíoraithe agat. Tacaíonn aonad wg-quick upstream le ceann amháin, agus sioncronaíonn sé cumraíocht WireGuard, ach ní ritheann sé socrú seoltaí, bealaí, DNS ná hooks arís. Mar sin breathnaíonn reload tar éis treoir róid a chur leis mar rath agus ní athraíonn sé rud ar bith.
Déan comparáid idir an gléas beo agus an comhad
Is é an seiceáil a dhúnann an aicme seo fabhtanna comparáid idir an rud atá ag an kernel agus an rud a deir an comhad. Tugann dhá ordú aschur inchomparáide, agus is é an difríocht an diall.
sudo wg showconf wg0
sudo wg-quick strip wg0
sudo diff <(sudo wg showconf wg0) <(sudo wg-quick strip wg0)Priontálann wg showconf an gléas beo, lena n-áirítear an eochair phríobháideach, mar sin caith leis an aschur sin mar rún agus ná greamaigh isteach i dticéad é. Priontálann wg-quick strip an comhad gan na heochracha atá sainiúil do wg-quick, agus sin an fáth a bhfuil an dá rud inchomparáide ar chor ar bith.
Ciallaíonn difríocht sa liosta peer nár cuireadh an comhad i bhfeidhm riamh. Ciallaíonn difríocht teoranta d'eochracha nó do chríochphointí a raibh súil agat leo athrú gur chuir rud éigin i bhfeidhm go páirteach é. Ciallaíonn easpa difríochta go bhfuil an chumraíocht reatha agus go bhfuil an locht in áit eile, rud atá ina thoradh úsáideach ann féin.
Íoc costas an atosaigh go toiliúil
Titeann an tollán nuair a atosaítear an comhéadan, agus má iompraíonn an tollán sin do sheisiún riaracháin, cuireann an t-atosú deireadh leis an seisiún a d'iarr é. Cuir an handler taobh thiar de fhuinneog athraithe, nó rith an playbook ó chonair bhainistíochta nach mbraitheann ar atosú an chomhéadain.
Is é an costas an fáth a dtéann daoine i muinín reload. Is instinct réasúnta é, agus éiríonn sé ceart nuair a bhíonn a fhios agat cé na hathruithe a chuireann reload i bhfeidhm i ndáiríre. Maidir le hathruithe peer agus eochrach ar aonad wg-quick upstream is leor é; maidir le seoladh, ródú agus hooks ní leor. Is saoire é a réiteach uair amháin ná é a aimsiú le linn fuinneoige athraithe.
Míníonn doiciméadú an mhodúil systemd_service an difríocht idir started, restarted agus reloaded, agus is fiú é a léamh uair amháin seachas é a thuiscint ó achoimre ghlas. Tagann gach rud sa treoir seo as an aon idirdhealú sin.