Ko te karetao he punaha whakahaere whirihoranga. Ka whakamahia hei kawe i nga kaihautu ki te ahua e hiahiatia ana me te pupuri i tenei ahuatanga.
Neke atu i te rima tau ahau e mahi ana me te Puppet inaianei. Ko tenei tuhinga he whakahiatotanga kua whakamaoritia me te whakariterite ano i nga kaupapa matua mai i nga tuhinga whaimana, e taea ai e te hunga timata te mohio tere ki te mauri o te Karetao.
Nga korero tuuturu
Ko te punaha whakahaere a Puppet he kaihoko-tūmau, ahakoa e tautoko ana i te mahi kore-tumau me te iti o te mahi.
Ka whakamahia he tauira kume: ma te taunoa, kotahi ia hawhe haora, ka whakapa atu nga kaihoko ki te tūmau mo te whirihoranga me te whakamahi. Mena kua mahi koe me Ansible, ka whakamahia e raatau he tauira pana rereke: ka timata te kaiwhakahaere ki te tono i te whirihoranga, kaore nga kaihoko e tono i tetahi mea.
I te wa o te whakawhitiwhiti korero whatunga, ka whakamahia te whakamunatanga TLS e rua-ara: kei te kaimau me te kiritaki o raatau ake kii motuhake me o raatau tiwhikete. Ko te tikanga ka tukuna e te tūmau nga tiwhikete mo nga kaihoko, engari ko te tikanga ka taea te whakamahi i te CA o waho.
He kupu whakataki ki nga whakaaturanga
In Puppet terms ki te tūmau karetao hono kōpuku (nodes). Kua tuhia te whirihoranga mo nga pona i roto i nga whakaaturanga i roto i te reo hotaka motuhake - Puppet DSL.
Ko te Puppet DSL he reo whakapuaki. Ka whakaahuahia te ahua o te node i roto i te ahua o nga whakapuakanga o nga rauemi takitahi, hei tauira:
- Kei te noho te konae, kei a ia ano nga ihirangi motuhake.
- Kua tāutahia te mōkihi.
- Kua timata te mahi.
Ka taea te hono nga rauemi:
- He herenga, ka pa ki te raupapa e whakamahia ai nga rauemi.
Hei tauira, "tuatahi te whakauru i te kete, ka whakatika i te konae whirihoranga, katahi ka tiimata te ratonga." - He whakamohiotanga - mena kua rereke tetahi rauemi, ka tukuna he panui ki nga rauemi kua ohauru ki a ia.
Hei tauira, ki te huri te konae whirihoranga, ka taea e koe te whakaara aunoa i te ratonga.
I tua atu, he mahi me nga taurangi te Puppet DSL, tae atu ki nga korero here me nga kaiwhiriwhiri. Ka tautokona ano nga momo momo tauira - EPP me ERB.
Kua tuhia te karetao ki Ruby, no reira he maha nga hanga me nga kupu i tangohia mai i reira. Ka taea e Ruby te whakawhānui ake i te Karetao - te taapiri i te arorau matatini, nga momo rauemi hou, nga mahi.
I te wa e rere ana te Puppet, ka whakahiatohia nga whakaaturanga mo ia node motuhake i runga i te tūmau ki roto i te whaiaronga. Whaiaronga he rarangi rauemi me o raatau hononga i muri i te tatau i te uara o nga mahi, taurangi me te roha o nga tauākī herenga.
Wetereo me te momo waehere
Anei nga waahanga o nga tuhinga whaimana hei awhina i a koe ki te mohio ki te wetereo mena kaore i te rawaka nga tauira e whakaratohia ana:
Anei tetahi tauira o te ahua o te whakaaturanga:
# Комментарии пишутся, как и много где, после решётки.
#
# Описание конфигурации ноды начинается с ключевого слова node,
# за которым следует селектор ноды — хостнейм (с доменом или без)
# или регулярное выражение для хостнеймов, или ключевое слово default.
#
# После этого в фигурных скобках описывается собственно конфигурация ноды.
#
# Одна и та же нода может попасть под несколько селекторов. Про приоритет
# селекторов написано в статье про синтаксис описания нод.
node 'hostname', 'f.q.d.n', /regexp/ {
# Конфигурация по сути является перечислением ресурсов и их параметров.
#
# У каждого ресурса есть тип и название.
#
# Внимание: не может быть двух ресурсов одного типа с одинаковыми названиями!
#
# Описание ресурса начинается с его типа. Тип пишется в нижнем регистре.
# Про разные типы ресурсов написано ниже.
#
# После типа в фигурных скобках пишется название ресурса, потом двоеточие,
# дальше идёт опциональное перечисление параметров ресурса и их значений.
# Значения параметров указываются через т.н. hash rocket (=>).
resource { 'title':
param1 => value1,
param2 => value2,
param3 => value3,
}
}
Ko te nuku me nga wehenga raina ehara i te waahanga e hiahiatia ana o te whakaaturanga, engari he tohutohu
- Ko nga nuku mokowā-rua, kaore e whakamahia nga ripa.
- Ka wehea nga taiapa weriweri e te mokowā;
- Ko nga piko i muri i ia tawhā, tae atu ki te mea whakamutunga. Ko ia tawhā kei runga i te raina motuhake. He rereke mo te keehi kaore he tawhā me tetahi tawhā: ka taea e koe te tuhi ki runga i te raina kotahi me te kore he piko (arā.
resource { 'title': }
иresource { 'title': param => value }
). - Ko nga pere i runga i nga tawhā kia rite te taumata.
- Kua tuhia nga pere hononga rauemi ki mua i a raatau.
Te waahi o nga konae kei runga i te pappetserver
Mo etahi atu whakamaramatanga, ka whakauruhia e ahau te kaupapa o te "whaiaronga pakiaka". Ko te whaiaronga pakiaka te whaiaronga kei roto te whirihoranga Puppet mo tetahi node.
Ko te whaiaronga pakiaka ka rereke i runga i te putanga o te Puppet me nga taiao e whakamahia ana. Ko nga taiao he huinga motuhake o te whirihoranga ka penapena ki roto i nga raarangi motuhake. I te nuinga o te wa ka whakamahia tahi me te git, ka hangaia nga taiao mai i nga manga git. I runga i tenei, ka noho ia node ki tetahi taiao, ki tetahi atu. Ka taea te whirihora i tenei i runga i te node ake, i te ENC ranei, ka korerohia e au i roto i te tuhinga e whai ake nei.
- I te putanga tuatoru ("Karetao tawhito") ko te whaiaronga turanga
/etc/puppet
. Ko te whakamahi i nga taiao he mea whiriwhiri - hei tauira, kaore matou e whakamahi me te Puppet tawhito. Mena ka whakamahia nga taiao, ka penapenahia ki roto/etc/puppet/environments
, ko te whaiaronga pakiaka te whaiaronga taiao. Ki te kore e whakamahia nga taiao, ko te whaiaronga pakiaka te whaiaronga turanga. - Mai i te putanga tuawha ("Karetao hou"), ka whakamanahia te whakamahi i nga taiao, ka nukuhia te whaiaronga turanga ki
/etc/puppetlabs/code
. Na reira, ka penapena nga taiao ki roto/etc/puppetlabs/code/environments
, ko te whaiaronga pakiaka te whaiaronga taiao.
Me noho he whaiarongaroto kei roto i te whaiaronga pakiaka manifests
, kei roto kotahi, neke atu ranei nga whakaaturanga e whakaatu ana i nga pona. I tua atu, me waiho he raarangi-roto modules
, kei roto nga kōwae. Ka korero ahau ki a koe he aha nga waahanga i muri tata nei. I tua atu, tera pea kei te Puppet tawhito he raarangiroto files
, kei roto nga momo konae ka kapea ki nga pona. I roto i te Puppet hou, ka whakauruhia nga konae katoa ki nga waahanga.
Ko nga kōnae Manifest te toronga .pp
.
He tokorua nga tauira whawhai
Whakaahuatanga o te node me te rauemi kei runga
I runga i te node server1.testdomain
me hanga he kōnae /etc/issue
me te ihirangi Debian GNU/Linux n l
. Me riro te kōnae i te kaiwhakamahi me te roopu root
, me whai mana uru 644
.
Ka tuhia e matou he whakaaturanga:
node 'server1.testdomain' { # блок конфигурации, относящийся к ноде server1.testdomain
file { '/etc/issue': # описываем файл /etc/issue
ensure => present, # этот файл должен существовать
content => 'Debian GNU/Linux n l', # у него должно быть такое содержимое
owner => root, # пользователь-владелец
group => root, # группа-владелец
mode => '0644', # права на файл. Они заданы в виде строки (в кавычках), потому что иначе число с 0 в начале будет воспринято как записанное в восьмеричной системе, и всё пойдёт не так, как задумано
}
}
Te hononga i waenga i nga rauemi i runga i te node
I runga i te node server2.testdomain
me rere te nginx, me te mahi me te whirihoranga kua oti te whakarite.
Me tihorea te raruraru:
- Me tāuta te mōkihi
nginx
. - He mea tika kia kape nga konae whirihoranga mai i te tūmau.
- Me whakahaere te ratonga
nginx
. - Mena kua whakahoutia te whirihoranga, me whakaara ano te ratonga.
Ka tuhia e matou he whakaaturanga:
node 'server2.testdomain' { # блок конфигурации, относящийся к ноде server2.testdomain
package { 'nginx': # описываем пакет nginx
ensure => installed, # он должен быть установлен
}
# Прямая стрелка (->) говорит о том, что ресурс ниже должен
# создаваться после ресурса, описанного выше.
# Такие зависимости транзитивны.
-> file { '/etc/nginx': # описываем файл /etc/nginx
ensure => directory, # это должна быть директория
source => 'puppet:///modules/example/nginx-conf', # её содержимое нужно брать с паппет-сервера по указанному адресу
recurse => true, # копировать файлы рекурсивно
purge => true, # нужно удалять лишние файлы (те, которых нет в источнике)
force => true, # удалять лишние директории
}
# Волнистая стрелка (~>) говорит о том, что ресурс ниже должен
# подписаться на изменения ресурса, описанного выше.
# Волнистая стрелка включает в себя прямую (->).
~> service { 'nginx': # описываем сервис nginx
ensure => running, # он должен быть запущен
enable => true, # его нужно запускать автоматически при старте системы
}
# Когда ресурс типа service получает уведомление,
# соответствующий сервис перезапускается.
}
Mo tenei mahi, me tata ki te waahi konae e whai ake nei i runga i te tūmau karetao:
/etc/puppetlabs/code/environments/production/ # (это для нового Паппета, для старого корневой директорией будет /etc/puppet)
├── manifests/
│ └── site.pp
└── modules/
└── example/
└── files/
└── nginx-conf/
├── nginx.conf
├── mime.types
└── conf.d/
└── some.conf
Momo Rauemi
Ka kitea he rarangi katoa o nga momo rauemi tautoko i konei
kōnae
Ka whakahaere i nga konae, i nga whaiaronga, i nga hononga tohu, i o raatau ihirangi, me nga mana uru.
Parama:
- ingoa rauemi — ara ki te konae (he kowhiri)
- ara — ara ki te konae (mehemea karekau i tohua ki te ingoa)
- whakarite - momo kōnae:
absent
- mukua he konaepresent
— me noho he konae ahakoa he aha te momo (mehemea karekau he konae, ka hangaia he konae rite tonu)file
- kōnae auaudirectory
- whaiarongalink
- hononga tohu
- ihirangi — nga ihirangi o nga konae (he pai mo nga konae noa, kaore e taea te whakamahi tahi me pūtake ranei ūnga)
- pūtake — he hononga ki te ara e hiahia ana koe ki te kape i nga ihirangi o te konae (kaore e taea te whakamahi tahi me ihirangi ranei ūnga). Ka taea te tohu hei URI me tetahi kaupapa
puppet:
(Katahi ka whakamahia nga konae mai i te karetao tūmau), me te kaupapahttp:
(Te ti'aturi nei au e marama ana nga mea ka puta i tenei keehi), a tae noa ki te hoahoafile:
hei ara tino kore ranei he aronuinga (katahi ka whakamahia te konae mai i te FS o te rohe kei runga i te node) - ūnga — kei hea te tohu tohu tohu (kaore e taea te whakamahi tahi me ihirangi ranei pūtake)
- rangatira — te kaiwhakamahi nana te konae
- rōpū — te roopu e tika ana te konae
- aratau - whakaaetanga kōnae (hei aho)
- whakahou - ka taea te tukatuka whaiaronga recursive
- horoi - ka taea te whakakore i nga konae kaore i te whakaahuatia i te Puppet
- kaha - ka taea te whakakore i nga whaiaronga kaore i te whakaahuatia i te Puppet
mōkihi
Ka tāuta me te tango pōkai. Ka taea ki te hapai i nga whakamohiotanga - ka whakauru ano i te kete mena kua tohua te tawhā reinstall_on_refresh.
Parama:
- ingoa rauemi — ingoa mōkihi (kōwhiringa)
- ingoa — ingoa mōkihi (mehemea karekau i tohua ki te ingoa)
- kaiwhakarato — kaiwhakahaere mōkihi ki te whakamahi
- whakarite — te ahua o te kete e hiahiatia ana:
present
,installed
- tetahi putanga kua whakauruhialatest
- te putanga hou kua whakauruhiaabsent
- kua mukua (apt-get remove
)purged
— kua mukua me nga konae whirihoranga (apt-get purge
)held
- kua maukati te putanga kete (apt-mark hold
)любая другая строка
— kua whakauruhia te putanga kua tohua
- reinstall_on_refresh - mena
true
, ka tae mai te panui ka whakauruhia ano te kete. He pai mo nga tohatoha-a-puna, kei te hiahiatia nga kohinga hangahanga ina huri i nga tawhā hanga. Taunoafalse
.
ratonga
Whakahaere ratonga. Ka taea te tukatuka whakamohiotanga - ka whakaara ano i te ratonga.
Parama:
- ingoa rauemi — kia whakahaeretia te ratonga (he kowhiri)
- ingoa — te ratonga e tika ana kia whakahaerea (mehemea karekau i tohua ki te ingoa)
- whakarite — te ahua o te ratonga e hiahiatia ana:
running
- whakarewahiastopped
- mutu
- taea — ka whakahaere i te kaha ki te timata i te ratonga:
true
— kua whakahohea te autorun (systemctl enable
)mask
- huna (systemctl mask
)false
— kua monoa te autorun (systemctl disable
)
- tīmata - whakahau kia timata ano te ratonga
- tūnga — whakahau kia tirohia te mana o te ratonga
- kua tīmata anō — tohu mena kei te tautoko te tuhinga wera o te ratonga ki te whakaara ano. Mehemea
false
ka tohua te tawhā tīmata — ka whakamahia te uara o tenei tawhā. Mehemeafalse
me te tawhā tīmata kaore i tohua - ka mutu te ratonga ka timata ki te whakaara ano (engari ka whakamahia e te systemd te whakahausystemctl restart
). - whai mana — tohuhia mena kei te tautoko te tuhinga wera i te whakahau
status
. Menafalse
, ka whakamahia te uara tawhā tūnga. Taunoatrue
.
exec
Ka whakahaere i nga whakahau o waho. Ki te kore koe e tauwhāiti i ngā tawhā hanga, mena anake, ki te kore ranei whakamahana noa, ka whakahaeretia te whakahau i nga wa katoa e whakahaerea ana te Puppet. Ka taea te tukatuka whakamohiotanga - ka whakahaere he whakahau.
Parama:
- ingoa rauemi — kia mahia te whakahau (he kowhiri)
- whakahau — te whakahau kia mahia (mehemea karekau i tohua ki te ingoa)
- ara — nga ara hei rapu i te konae ka taea te whakahaere
- mena anake — ki te oti te whakahau i tohua i tenei tawhā me te waehere kore whakahoki, ka mahia te whakahau matua
- ki te kore — ki te oti te whakahau kua tohua ki tenei tawhā me te waehere whakahoki kore-kore, ka mahia te whakahau matua
- hanga — ki te kore te konae kua tohua ki tenei tawhā, ka mahia te whakahau matua
- whakamahana noa - mena
true
, katahi ka whakahaerea te whakahau ina tae mai te panuitanga mai i etahi atu rauemi - cwd — whaiaronga hei whakahaere i te whakahau
- kaiwhakamahi — ko te kaiwhakamahi hei whakahaere i te whakahau
- kaiwhakarato - me pehea te whakahaere i te whakahau:
- posix — he mea hanga noa he tukanga tamaiti, kia mohio koe ki te tohu ara
- anga - ka whakarewahia te whakahau i roto i te anga
/bin/sh
, kaore pea e tohua ara, ka taea e koe te whakamahi globbing, paipa me etahi atu ahuatanga anga. Ko te tikanga ka kitea aunoa mena he tohu motuhake (|
,;
,&&
,||
etc).
cron
Whakahaere cronjobs.
Parama:
- ingoa rauemi - he momo tautohu noa
- whakarite — te ahua o te karauna:
present
- hanga mena karekauabsent
- muku mena kei te noho
- whakahau - he aha te whakahau hei whakahaere
- taiao — kei hea te taiao hei whakahaere i te whakahau (rarangi o nga taurangi taiao me o raatau uara ma
=
) - kaiwhakamahi — mai i te kaiwhakamahi hei whakahaere i te whakahau
- meneti, haora, rāwiki, marama, marama — te wa ki te whakahaere cron. Ki te kore tetahi o enei huanga i tohua, ko tona uara kei roto i te crontab
*
.
Kei te Puppet 6.0 cron me te mea
Mō ngā rauemi whānui
Nga whakaritenga mo te ahurei rawa
Ko te hapa tino noa e pa ana ki a tatou Whakapuakanga taarua. Ka puta tenei hapa ina puta nga rauemi e rua, neke atu ranei o te momo kotahi me te ingoa kotahi i roto i te whaiaronga.
No reira, ka tuhi ano ahau: Ko nga whakaaturanga mo te node kotahi kaua e uru ki nga rauemi o te momo rite me te taitara kotahi!
I etahi wa ka hiahia ki te whakauru i nga kohinga me te ingoa kotahi, engari me nga kaiwhakahaere putea rereke. I tenei keehi, me whakamahi koe i te tawhā name
ki te karo i te hapa:
package { 'ruby-mysql':
ensure => installed,
name => 'mysql',
provider => 'gem',
}
package { 'python-mysql':
ensure => installed,
name => 'mysql',
provider => 'pip',
}
He rite nga whiringa mo etahi atu momo rauemi hei karo i te taarua − name
у ratonga, command
у exec, me etahi atu.
Ngā tawhā meta
Kei ia momo rauemi etahi tawhā motuhake, ahakoa te ahua.
Rarangi katoa o nga tawhā meta
Rārangi poto:
- hiahia — ko tenei tawhā e tohu ana ko wai nga rauemi e whakawhirinaki ana tenei rauemi.
- i mua i - Ko tenei tawhā ka whakapūtā ko ēhea ngā rauemi e whakawhirinaki ana ki tēnei rauemi.
- ohauru — ko tenei tawhā e tohu mai i nga rauemi ka whiwhi whakamohiotanga tenei rauemi.
- whakamōhio — Ko tenei tawhā e tohu ana ko nga rauemi ka whiwhi whakamohiotanga mai i tenei rauemi.
Ka whakaaetia e nga taapapa meta kua whakarārangihia he hononga rauemi kotahi, he huinga hononga ranei kei roto i nga taiapa tapawha.
Nga hononga ki nga rauemi
Ko te hononga rauemi he korero noa mo te rauemi. Ka whakamahia te nuinga hei tohu i nga whakawhirinakitanga. Ko te tohutoro i te rauemi kore-kore ka puta he hapa whakahiato.
Ko te wetereo o te hononga e whai ake nei: momo rauemi me te reta matua (mehemea kei roto i te ingoa momo nga kopirua, katahi ka tuhia ia wahanga o te ingoa i waenga i nga kopirua), katahi ko te ingoa rauemi kei roto i nga taiapa tapawha (te take o te ingoa e kore e huri!). Kaua he mokowā; ka tuhia nga taiapa tapawha i muri tonu i te ingoa momo.
Hei tauira:
file { '/file1': ensure => present }
file { '/file2':
ensure => directory,
before => File['/file1'],
}
file { '/file3': ensure => absent }
File['/file1'] -> File['/file3']
Te whakawhirinaki me te whakamohiotanga
Ka rite ki te korero i mua ake nei, ko nga whakawhirinakitanga ngawari i waenga i nga rauemi he whakawhiti. Ma te ara, kia tupato ki te taapiri i nga taapiri - ka taea e koe te hanga i nga whakawhirinakitanga hurihanga, ka puta he hapa whakahiato.
Kaore i rite ki nga whakawhirinakitanga, ehara nga whakamohiotanga i te whakawhiti. Ko nga ture e whai ake nei e pa ana mo nga panui:
- Mena ka whiwhi panui te rauemi, ka whakahouhia. Ko nga mahi whakahou ka whakawhirinaki ki te momo rauemi − exec ka whakahaere i te whakahau, ratonga ka whakaara ano i te ratonga, mōkihi ka tāuta anō i te mōkihi. Mena karekau he mahi whakahou i te rauemi, karekau he mea ka puta.
- I te wa kotahi o te Karetao, ka whakahouhia te rauemi kaua e neke atu i te kotahi. Ka taea tenei na te mea kei roto i nga whakamohiotanga nga whakawhirinakitanga me te kauwhata whakawhirinaki kaore he huringa.
- Mena ka huri a Puppet i te ahua o tetahi rauemi, ka tukuna e te rauemi he whakamohiotanga ki nga rauemi katoa kua ohauru ki a ia.
- Ki te whakahōuhia he rauemi, ka tuku whakamohiotanga ki nga rauemi katoa kua ohauru ki a ia.
Te whakahaere i nga tawhā kaore i tohua
Hei tikanga, mena karekau he uara taunoa o etahi tawhā rauemi, karekau hoki tenei tawhā i tohua ki te whakaaturanga, karekau a Puppet e huri i tenei taonga mo te rauemi e rite ana ki te node. Hei tauira, mena he momo rauemi kōnae tawhā kāore i tohua owner
, ka kore te Puppet e huri i te rangatira o te konae e rite ana.
He kupu whakataki ki nga karaehe, taurangi me nga whakamaramatanga
Mehemea he maha nga pona he rite tonu te waahanga o te whirihoranga, engari he rereke ano - mena ka taea te whakaahua katoa ki te poraka kotahi node {}
. Ae ra, ka taea e koe te kape noa i nga waahanga rite o te whirihoranga, engari i te nuinga o te waa he otinga kino tenei - ka tipu te whirihoranga, a ki te huri koe i te waahanga whanui o te whirihoranga, me whakatika e koe te mea ano i nga waahi maha. I te wa ano, he mea ngawari ki te pohehe, a, i te nuinga o te waa, i hangaia te kaupapa DRY (kaua e tukurua) mo tetahi take.
Hei whakaoti i tenei raru he hoahoa penei te piha haapiiraa.
Karaehe
Tuatahi me whakaahua te akomanga. Ko te whakaahuatanga ake kaore e taapiri i nga rauemi ki hea. Ka whakaatuhia te akomanga ki nga whakaaturanga:
# Описание класса начинается с ключевого слова class и его названия.
# Дальше идёт тело класса в фигурных скобках.
class example_class {
...
}
I muri i tenei ka taea te whakamahi i te akomanga:
# первый вариант использования — в стиле ресурса с типом class
class { 'example_class': }
# второй вариант использования — с помощью функции include
include example_class
# про отличие этих двух вариантов будет рассказано дальше
He tauira mai i te mahi o mua - me nukuhia te whakaurunga me te whirihoranga o nginx ki roto i te karaehe:
class nginx_example {
package { 'nginx':
ensure => installed,
}
-> file { '/etc/nginx':
ensure => directory,
source => 'puppet:///modules/example/nginx-conf',
recure => true,
purge => true,
force => true,
}
~> service { 'nginx':
ensure => running,
enable => true,
}
}
node 'server2.testdomain' {
include nginx_example
}
Ngā rerekētanga
Ko te karaehe mai i te tauira o mua kaore i te ngawari na te mea he rite tonu te whirihoranga nginx. Me hanga te ara ki te taurangi whirihoranga, katahi ka taea te whakamahi i tenei akomanga ki te whakauru i te nginx me tetahi whirihoranga.
Ka taea te mahi
Kia mahara: ko nga taurangi kei roto i te Puppet e kore e huri!
I tua atu, ka taea anake te uru atu ki tetahi taurangi i muri i te whakapuakitanga, ki te kore ko te uara o te taurangi undef
.
He tauira o te mahi me nga taurangi:
# создание переменных
$variable = 'value'
$var2 = 1
$var3 = true
$var4 = undef
# использование переменных
$var5 = $var6
file { '/tmp/text': content => $variable }
# интерполяция переменных — раскрытие значения переменных в строках. Работает только в двойных кавычках!
$var6 = "Variable with name variable has value ${variable}"
Puppet has mokowā ingoa, me nga taurangi, na reira, he wāhi kitea: Ko te taurangi he rite te ingoa ka taea te tautuhi ki nga mokowāingoa rereke. I te whakatau i te uara o te taurangi, ka rapua te taurangi ki te mokowāingoa o nāianei, kātahi ki te mokowāingoa āpiti, me te aha.
Nga tauira mokowāingoa:
- ao - ka haere nga taurangi kei waho o te karaehe, te whakaahuatanga node ranei;
- mokowāingoa kōpuku i te whakaahuatanga kōpuku;
- mokowāingoa akomanga i te whakaahuatanga o te akomanga.
Hei karo i te rangirua ina uru ki tetahi taurangi, ka taea e koe te tohu mokowāingoa ki te ingoa taurangi:
# переменная без пространства имён
$var
# переменная в глобальном пространстве имён
$::var
# переменная в пространстве имён класса
$classname::var
$::classname::var
Kia whakaae tatou ko te ara ki te whirihoranga nginx kei roto i te taurangi $nginx_conf_source
. Na ka penei te ahua o te akomanga:
class nginx_example {
package { 'nginx':
ensure => installed,
}
-> file { '/etc/nginx':
ensure => directory,
source => $nginx_conf_source, # здесь используем переменную вместо фиксированной строки
recure => true,
purge => true,
force => true,
}
~> service { 'nginx':
ensure => running,
enable => true,
}
}
node 'server2.testdomain' {
$nginx_conf_source = 'puppet:///modules/example/nginx-conf'
include nginx_example
}
Heoi, he kino te tauira na te mea he "mohio huna" kei roto i te akomanga ka whakamahia he taurangi penei me te ingoa pera. He tika ake te whakawhanui i tenei matauranga - ka taea e nga karaehe nga tawhā.
Tawhā karaehe he taurangi kei roto i te mokowāingoa akomanga, kua tohua ki te pane o te karaehe ka taea te whakamahi penei i nga taurangi auau i te tinana o te akomanga. Ka tohua nga uara tawhā ina whakamahi ana i te karaehe i roto i te whakaaturanga.
Ka taea te tautuhi i te tawhā ki te uara taunoa. Mena karekau he uara taunoa o te tawhā, karekau hoki te uara i whakaritea ina whakamahia, ka puta he hapa whakahiato.
Me whakarite te karaehe mai i te tauira i runga ake nei ka taapirihia nga taapiri e rua: ko te tuatahi, e hiahiatia ana, ko te huarahi ki te whirihoranga, ko te tuarua, ko te kowhiringa, ko te ingoa o te kete me te nginx (i Debian, hei tauira, he kete nginx
, nginx-light
, nginx-full
).
# переменные описываются сразу после имени класса в круглых скобках
class nginx_example (
$conf_source,
$package_name = 'nginx-light', # параметр со значением по умолчанию
) {
package { $package_name:
ensure => installed,
}
-> file { '/etc/nginx':
ensure => directory,
source => $conf_source,
recurse => true,
purge => true,
force => true,
}
~> service { 'nginx':
ensure => running,
enable => true,
}
}
node 'server2.testdomain' {
# если мы хотим задать параметры класса, функция include не подойдёт* — нужно использовать resource-style declaration
# *на самом деле подойдёт, но про это расскажу в следующей серии. Ключевое слово "Hiera".
class { 'nginx_example':
conf_source => 'puppet:///modules/example/nginx-conf', # задаём параметры класса точно так же, как параметры для других ресурсов
}
}
I roto i te Puppet, ka patohia nga taurangi. Kai
Ka tuhia te momo i mua tonu i te ingoa tawhā:
class example (
String $param1,
Integer $param2,
Array $param3,
Hash $param4,
Hash[String, String] $param5,
) {
...
}
Karaehe: whakauruhia te ingoa akomanga me te karaehe{'classname':}
Ko ia akomanga he momo rauemi piha haapiiraa. Pērā i ētahi atu momo rauemi, kāore e rua ngā tauira o te karaehe kotahi i runga i te kōpuku kotahi.
Mena ka ngana koe ki te taapiri i tetahi karaehe ki te node kotahi e rua te whakamahi class { 'classname':}
(kare he rereke, he rereke, he rite nga tawhā), ka puta he hapa whakahiato. Engari ki te whakamahi koe i tetahi karaehe i roto i te momo rauemi, ka taea e koe te tautuhi i ona tawhā katoa ki te whakaaturanga.
Heoi, ki te whakamahi koe include
, katahi ka taea te taapiri i te karaehe kia maha nga wa e hiahiatia ana. Ko te meka ko tera include
he mahi idempotent e taki ana mena kua taapirihia he akomanga ki te whaiaronga. Mena karekau te karaehe i roto i te raarangi, ka taapirihia, mena kei te noho tonu, kaore he mahi. Engari ki te whakamahi include
Kaore e taea e koe te whakarite tawhā karaehe i te wa whakapuakanga o te karaehe - me whakatakoto nga tawhā e hiahiatia ana ki tetahi puna raraunga o waho - Hiera, ENC ranei. Ka korero tatou mo ratou i roto i te tuhinga ka whai ake.
Ka tautuhi
Ka rite ki te korero i roto i te poraka o mua, kaore e taea e te karaehe kotahi te noho ki runga i te node neke atu i te kotahi. Heoi, i etahi wa me kaha koe ki te whakamahi i te poraka kotahi o te waehere me nga tawhā rereke i runga i te node kotahi. Arā, he hiahia mō tētahi momo rauemi mōna ake.
Hei tauira, hei whakauru i te waahanga PHP, ka mahia e matou nga mea e whai ake nei i Avito:
- Tāutahia te mōkihi me tēnei kōwae.
- Me hanga he kōnae whirihoranga mo tenei kōwae.
- Ka hangaia e matou he hononga hono ki te whirihora mo php-fpm.
- Ka hangaia e matou he symlink ki te whirihora mo te php cli.
I enei ahuatanga, he hoahoa penei $title
, ka haere te ingoa rauemi ina whakapuakina. Ka rite ki nga karaehe, me whakamaarama i te tuatahi, katahi ka taea te whakamahi.
He tauira ngawari me tetahi waahanga mo PHP:
define php74::module (
$php_module_name = $title,
$php_package_name = "php7.4-${title}",
$version = 'installed',
$priority = '20',
$data = "extension=${title}.son",
$php_module_path = '/etc/php/7.4/mods-available',
) {
package { $php_package_name:
ensure => $version,
install_options => ['-o', 'DPkg::NoTriggers=true'], # триггеры дебиановских php-пакетов сами создают симлинки и перезапускают сервис php-fpm - нам это не нужно, так как и симлинками, и сервисом мы управляем с помощью Puppet
}
-> file { "${php_module_path}/${php_module_name}.ini":
ensure => $ensure,
content => $data,
}
file { "/etc/php/7.4/cli/conf.d/${priority}-${php_module_name}.ini":
ensure => link,
target => "${php_module_path}/${php_module_name}.ini",
}
file { "/etc/php/7.4/fpm/conf.d/${priority}-${php_module_name}.ini":
ensure => link,
target => "${php_module_path}/${php_module_name}.ini",
}
}
node server3.testdomain {
php74::module { 'sqlite3': }
php74::module { 'amqp': php_package_name => 'php-amqp' }
php74::module { 'msgpack': priority => '10' }
}
Ko te huarahi ngawari ki te hopu i te Hapa Whakapuakanga Taarua kei roto i te Define. Ka tupu tenei ki te mea he rauemi to te whakamaramatanga me te ingoa tonu, a e rua, neke atu ranei nga waahi o tenei whakamaramatanga i runga i etahi node.
He ngawari te tiaki i a koe mai i tenei: me whai ingoa nga rauemi katoa kei roto i te whakamaramatanga $title
. Ko tetahi atu ko te taapiri i nga rauemi; i roto i te waa ngawari, he nui noa te neke i nga rauemi noa ki nga ahuatanga katoa o te whakamaramatanga ki roto i tetahi akomanga motuhake me te whakauru i tenei akomanga ki te whakamaramatanga - mahi. include
manahau.
He huarahi kee hei whakatutuki i te ngoikoretanga ina taapiri rauemi, ara te whakamahi i nga mahi defined
и ensure_resources
, engari ka korerotia e ahau ki a koe i te waahanga e whai ake nei.
Te whakawhirinaki me te whakamohiotanga mo nga karaehe me nga whakamaramatanga
Ka taapirihia e nga karaehe me nga whakamaramatanga nga ture e whai ake nei ki te whakahaere i nga whakawhirinakitanga me nga whakamohiotanga:
- te ti'aturi i runga i te karaehe/whakaahua ka taapiri i nga whakawhirinakitanga ki nga rauemi katoa o te akomanga/whakaahua;
- he karaehe/tautuhia te ti'aturi ka taapiri i nga ti'aturi ki te akomanga katoa/tautuhia nga rauemi;
- Ka whakamohiohia e te akomanga/tautuhia nga rauemi katoa o te akomanga/whakaahua;
- ka ohauru te akomanga/whakaahua ki nga rauemi katoa o te karaehe/whakaahua.
Tauākī here me ngā kaikōwhiri
if
He mea ngawari ki konei:
if ВЫРАЖЕНИЕ1 {
...
} elsif ВЫРАЖЕНИЕ2 {
...
} else {
...
}
ki te kore
ki te mea he whakamuri: ka mahia te poraka o te waehere ki te he te korero.
unless ВЫРАЖЕНИЕ {
...
}
take
Karekau he mea uaua i konei. Ka taea e koe te whakamahi i nga uara auau (nga aho, nga nama, me etahi atu), nga korero auau, me nga momo raraunga hei uara.
case ВЫРАЖЕНИЕ {
ЗНАЧЕНИЕ1: { ... }
ЗНАЧЕНИЕ2, ЗНАЧЕНИЕ3: { ... }
default: { ... }
}
Kaiwhiriwhiri
Ko te kaikowhiri he hanga reo rite ki case
, engari hei utu mo te mahi poraka waehere, ka whakahokia he uara.
$var = $othervar ? { 'val1' => 1, 'val2' => 2, default => 3 }
Ngā kōwae
Ina he iti te whirihoranga, ka ngawari te pupuri i roto i te whakaaturanga kotahi. Engari ko te nui ake o nga whirihoranga ka whakaahuahia e matou, ka nui ake nga karaehe me nga pona kei roto i te whakaaturanga, ka tipu haere, ka raru te mahi.
I tua atu, he raruraru o te whakamahi ano i te waehere - ka noho nga waehere katoa i roto i te whakaaturanga kotahi, he uaua ki te tiri i tenei waehere ki etahi atu. Hei whakaoti i enei rapanga e rua, he hinonga a Puppet e kiia nei ko modules.
Ngā kōwae - he huinga karaehe enei, he whakamaramatanga me etahi atu hinonga Puppet kua tuu ki roto i te raarangi motuhake. Arā, ko te kōwae he wāhanga motuhake o te arorau Puppet. Hei tauira, tera pea he waahanga mo te mahi me te nginx, kei roto ko nga mea me nga mea anake e hiahiatia ana hei mahi me te nginx, tera pea he waahanga mo te mahi me te PHP, me etahi atu.
Ka whakaputahia nga waahanga, ka tautokohia hoki nga whakawhirinakitanga o nga waahanga ki a raatau ano. He putunga tuwhera o nga waahanga -
I runga i te tūmau karetao, kei roto nga kōwae i roto i te rārangi-roto kōwae o te whaiaronga pakiaka. Kei roto i ia kōwae he kaupapa whaiaronga paerewa - whakaaturanga, konae, tauira, lib, aha atu.
Hanganga kōnae i roto i te kōwae
Kei roto pea i te putake o te kōwae nga whaiaronga e whai ake nei me nga ingoa whakamaarama:
manifests
- kei roto nga whakaaturangafiles
- kei roto nga konaetemplates
- kei roto nga tauiralib
— kei roto te waehere Ruby
Ehara tenei i te rarangi katoa o nga whaiaronga me nga konae, engari he nui mo tenei tuhinga mo tenei wa.
Nga ingoa o nga rauemi me nga ingoa o nga konae kei roto i te kōwae
Ko nga rauemi (akomanga, whakamaarama) i roto i tetahi kōwae e kore e taea te whakaingoatia ahakoa he pai ki a koe. I tua atu, he reta tika kei waenganui i te ingoa o tetahi rauemi me te ingoa o te konae ka rapua e te Puppet he whakaahuatanga mo taua rauemi. Mena ka takahia e koe nga ture whakaingoa, kare noa a Puppet e kite i te whakaahuatanga rauemi, ka puta he hapa whakahiato.
He ngawari nga ture:
- Ko nga rauemi katoa kei roto i tetahi waahanga me noho ki te mokowāingoa kōwae. Mena ka karangahia te kōwae
foo
, me whakaingoatia nga rauemi katoa kei rotofoo::<anything>
, tika raneifoo
. - Me noho te rauemi me te ingoa o te kōwae i roto i te kōnae
init.pp
. - Mo etahi atu rauemi, ko te kaupapa whakaingoa ingoa e whai ake nei:
- ka makahia te tohumua me te ingoa kōwae
- ka whakakapihia nga pourua rua, ki te mea he rītaha
- ka taapirihia te toronga
.pp
Ka whakaatu ahau me tetahi tauira. Me kī kei te tuhi kōwae ahau nginx
. Kei roto nga rauemi e whai ake nei:
- te piha haapiiraa
nginx
whakaahuatia i roto i te whakaaturangainit.pp
; - te piha haapiiraa
nginx::service
whakaahuatia i roto i te whakaaturangaservice.pp
; - tautuhi
nginx::server
whakaahuatia i roto i te whakaaturangaserver.pp
; - tautuhi
nginx::server::location
whakaahuatia i roto i te whakaaturangaserver/location.pp
.
Tātauira
He pono kei te mohio koe he aha nga tauira; E kore ahau e whakaahua taipitopito i konei. Engari ka waiho noa e ahau
Me pehea te whakamahi i nga tauira: Ka taea te whakawhānui ake i te tikanga o te tauira ma te whakamahi i tetahi mahi template
, ka tukuna te ara ki te tauira. Mo nga momo rauemi kōnae whakamahia tahi me te tawhā content
. Hei tauira, penei:
file { '/tmp/example': content => template('modulename/templatename.erb')
Tirohia te ara <modulename>/<filename>
e tohu ana i te konae <rootdir>/modules/<modulename>/templates/<filename>
.
Hei taapiri, he mahi ano to inline_template
— ka whiwhi i te tuhinga tauira hei whakauru, kaua ko te ingoa konae.
I roto i nga tauira, ka taea e koe te whakamahi i nga taurangi Puppet katoa i roto i te whānuitanga o naianei.
Ka tautoko te karetao i nga tauira i roto i te whakatakotoranga ERB me te EPP:
He poto mo te ERB
Hanganga mana:
<%= ВЫРАЖЕНИЕ %>
— whakauruhia te uara o te korero<% ВЫРАЖЕНИЕ %>
— tātaihia te wāriu o tētahi kīanga (kaore he whakauru). Ko nga korero here (mehemea) me nga koropiko (ia) ka haere ki konei.<%# КОММЕНТАРИЙ %>
Ko nga korero i roto i te ERB ka tuhia ki te Ruby (Ko te ERB te Ruby Whakamau).
Hei uru ki nga taurangi mai i te whakaaturanga, me taapiri koe @
ki te ingoa taurangi. Hei tango i te wehenga raina ka puta i muri i te hanga mana, me whakamahi koe i te tohu kati -%>
.
He tauira mo te whakamahi i te tauira
Me kii kei te tuhi au i tetahi waahanga hei whakahaere i te ZooKeeper. Ko te karaehe hei hanga i te whirihora he ahua penei:
class zookeeper::configure (
Array[String] $nodes,
Integer $port_client,
Integer $port_quorum,
Integer $port_leader,
Hash[String, Any] $properties,
String $datadir,
) {
file { '/etc/zookeeper/conf/zoo.cfg':
ensure => present,
content => template('zookeeper/zoo.cfg.erb'),
}
}
Me te tauira e rite ana zoo.cfg.erb
- Na:
<% if @nodes.length > 0 -%>
<% @nodes.each do |node, id| -%>
server.<%= id %>=<%= node %>:<%= @port_leader %>:<%= @port_quorum %>;<%= @port_client %>
<% end -%>
<% end -%>
dataDir=<%= @datadir %>
<% @properties.each do |k, v| -%>
<%= k %>=<%= v %>
<% end -%>
Nga Meka me nga Taurangi Hanga-roto
I te nuinga o te wa ko te waahanga motuhake o te whirihoranga ka whakawhirinaki ki nga mea e tupu ana i tenei wa i runga i te node. Hei tauira, i runga i te ahua o te tukunga a Debian, me whakauru e koe tetahi, tetahi atu putanga o te kete. Ka taea e koe te aro turuki i enei mea katoa, me te tuhi ano i nga whakaaturanga mena ka huri nga pona. Engari ehara tenei i te huarahi tino nui; he pai ake te automation.
Hei tiki korero mo nga pona, he tikanga a Puppet e kiia ana ko te meka. Facts - he korero tenei mo te node, e waatea ana i roto i nga whakaaturanga i roto i te ahua o nga taurangi noa i te waahi ingoa o te ao. Hei tauira, te ingoa kaihautu, te putanga o te punaha whakahaere, te hoahoanga tukatuka, te rarangi o nga kaiwhakamahi, te rarangi o nga hononga whatunga me o raatau wahitau, me te maha atu. E waatea ana nga korero i roto i nga whakaaturanga me nga tauira hei taurangi auau.
He tauira mo te mahi me nga meka:
notify { "Running OS ${facts['os']['name']} version ${facts['os']['release']['full']}": }
# ресурс типа notify просто выводит сообщение в лог
Ko te korero okawa, he ingoa (aho) me te uara o te meka (he maha nga momo e waatea ana: aho, rarangi, papakupu). Kai
I te wa e mahi ana, ka kape tuatahitia e te kaihoko karetao nga kaikohi meka katoa mai i te pappetserver ki te node, muri iho ka whakarewahia e ia ka tukuna atu nga meka kua kohia ki te tūmau; I muri i tenei, ka timata te tūmau ki te whakahiato i te putumōhio.
Meka i roto i te ahua o nga konae whakahaere
Ko enei korero ka tuuhia ki roto i nga waahanga o te raarangi facts.d
. Ko te tikanga, me kawe nga konae. Ina rere ana, me whakaputa korero ki te putanga paerewa i roto i te whakatakotoranga YAML, matua ranei = uara.
Kaua e wareware e pa ana nga meka ki nga pona katoa e whakahaerea ana e te tuumau poppet e horahia ana to kōwae. Na reira, i roto i te tuhinga, kia tupato ki te tirotiro kei te punaha nga kaupapa me nga konae katoa e tika ana kia mahi to mahi.
#!/bin/sh
echo "testfact=success"
#!/bin/sh
echo '{"testyamlfact":"success"}'
Ruby meka
Ko enei korero ka tuuhia ki roto i nga waahanga o te raarangi lib/facter
.
# всё начинается с вызова функции Facter.add с именем факта и блоком кода
Facter.add('ladvd') do
# в блоках confine описываются условия применимости факта — код внутри блока должен вернуть true, иначе значение факта не вычисляется и не возвращается
confine do
Facter::Core::Execution.which('ladvdc') # проверим, что в PATH есть такой исполняемый файл
end
confine do
File.socket?('/var/run/ladvd.sock') # проверим, что есть такой UNIX-domain socket
end
# в блоке setcode происходит собственно вычисление значения факта
setcode do
hash = {}
if (out = Facter::Core::Execution.execute('ladvdc -b'))
out.split.each do |l|
line = l.split('=')
next if line.length != 2
name, value = line
hash[name.strip.downcase.tr(' ', '_')] = value.strip.chomp(''').reverse.chomp(''').reverse
end
end
hash # значение последнего выражения в блоке setcode является значением факта
end
end
Kuputuhi meka
Ko enei meka ka tukuna ki runga i nga kohanga o te raarangi /etc/facter/facts.d
i roto i te Puppet tawhito ranei /etc/puppetlabs/facts.d
i roto i te Puppet hou.
examplefact=examplevalue
---
examplefact2: examplevalue2
anotherfact: anothervalue
Haere ki nga Meka
E rua nga huarahi ki te whakatata ki nga meka:
- na roto i te papakupu
$facts
:$facts['fqdn']
; - te whakamahi i te ingoa meka hei ingoa taurangi:
$fqdn
.
He pai ake te whakamahi papakupu $facts
, pai ake ranei, tohuhia te mokowāingoa o te ao ($::facts
).
Taurangi-i roto
I tua atu i nga meka, kei reira ano
- nga korero pono — nga taurangi ka tangohia mai i te tiwhikete a te kiritaki (i te mea ka tukuna te tiwhikete ki runga i te tuumau poppet, kaore e taea e te kaihoko te tango noa me te whakarereke i tana tiwhikete, no reira ka "whakawhirinaki" nga taurangi): te ingoa o te tiwhikete, te ingoa o te kaihautu me te rohe, nga toronga mai i te tiwhikete.
- meka tūmau —taurangi e pa ana ki nga korero mo te tūmau—putanga, ingoa, wāhitau IP tūmau, taiao.
- meka kaihoko — nga taurangi ka honoa tika e te karetao-kaiwhakahaere, kaua ma te mea - ingoa tiwhikete, putanga kaihoko, putanga karetao.
- taurangi matua - Taurangi Pappetmaster (sic!). He rite tonu ki roto meka tūmau, me nga uara tawhā whirihoranga e waatea ana.
- taurangi whakahiato — nga taurangi whakahiato he rereke i ia waahanga: te ingoa o te waahanga o naianei me te ingoa o te waahanga i uru atu ai te ahanoa o naianei. Ka taea te whakamahi, hei tauira, ki te tirotiro kei te whakamahia to akomanga motuhake mai i etahi atu waahanga.
Tāpiritanga 1: me pehea te whakahaere me te patuiro i enei mea katoa?
He maha nga tauira o te waehere karetao i roto i te tuhinga, engari kaore i tino korero mai me pehea te whakahaere i tenei waehere. Ana, kei te whakatika ahau i a au ano.
He nui te kaihoko ki te whakahaere i te Puppet, engari mo te nuinga o nga keehi ka hiahia koe ki tetahi tūmau.
Roia
I te iti rawa mai i te putanga XNUMX, nga kohinga karetao-kaiwhakahaere mai
I roto i te keehi tino ngawari, ki te whakamahi i te whirihoranga karetao, he nui noa ki te whakarewa i te kaihoko i roto i te aratau karekau: mena ka kapehia te waehere karetao ki te node, whakarewahia. puppet apply <путь к манифесту>
:
atikhonov@atikhonov ~/puppet-test $ cat helloworld.pp
node default {
notify { 'Hello world!': }
}
atikhonov@atikhonov ~/puppet-test $ puppet apply helloworld.pp
Notice: Compiled catalog for atikhonov.localdomain in environment production in 0.01 seconds
Notice: Hello world!
Notice: /Stage[main]/Main/Node[default]/Notify[Hello world!]/message: defined 'message' as 'Hello world!'
Notice: Applied catalog in 0.01 seconds
He pai ake, he pai ake, ki te whakatu i te tūmau me te whakahaere i nga apiha i runga i nga node i roto i te aratau daemon - katahi ia hawhe haora ka tonohia te whirihoranga i tangohia mai i te tūmau.
Ka taea e koe te peehi i te tauira pana o te mahi - haere ki te node e hiahia ana koe ka timata sudo puppet agent -t
. Kī -t
(--test
) he maha nga whiringa ka taea te mahi takitahi. Kei roto i enei whiringa nga mea e whai ake nei:
- kaua e rere i roto i te aratau daemon (ma te taunoa ka tiimata te kaihoko ki te aratau daemon);
- katia i muri i te tono i te putumōhio (ma te taunoa, ka mahi tonu te kaihoko me te whakamahi i te whirihoranga kotahi ia hawhe haora);
- tuhia he raupapa mahi taipitopito;
- whakaatu huringa i roto i nga kōnae.
He aratau whakahaere a te kaihoko kaore he huringa - ka taea e koe te whakamahi mena kaore koe i te tino mohio kua tuhia e koe te whirihoranga tika me te hiahia ki te tirotiro he aha te mea ka huri te kaihoko i te wa e mahi ana. Ka taea tenei aratau e te tawhā --noop
i runga i te raina whakahau: sudo puppet agent -t --noop
.
I tua atu, ka taea e koe te whakaahei i te rarangi patuiro o te mahi - kei roto, ka tuhia e te karetao mo nga mahi katoa e mahia ana e ia: mo te rauemi e tukatukahia ana i tenei wa, mo nga tawhā o tenei rauemi, mo nga kaupapa ka whakarewahia e ia. Ko te tikanga he tawhā tenei --debug
.
Tūmau
E kore ahau e whakaaro ki te tatūnga katoa o te pappetserver me te tuku waehere ki roto i tenei tuhinga; Ka kii noa ahau kei waho o te pouaka he putanga tino mahi o te tūmau kaore e hiahiatia he whirihoranga taapiri hei mahi me te iti o te nodes (pei ki te kotahi rau). Ko te maha o nga pona ka hiahia ki te whakatika - ma te taunoa, ka tukuna e te puppetserver kia kaua e neke atu i te wha nga kaimahi, mo te mahi nui ake me whakanui ake o raatau nama me te kore e wareware ki te whakanui ake i nga rohe mahara, ki te kore ka kohia e te tūmau te nuinga o te waa.
Tukunga Waehere - ki te hiahia tere me te ngawari, katahi ka titiro (i te r10k)[
Tāpiritanga 2: Aratohu Whakawaehere
- Whakanohoia nga arorau katoa ki nga karaehe me nga whakamaramatanga.
- Puritia nga karaehe me nga whakamaramatanga ki nga waahanga, kaua ki nga whakaaturanga e whakaahua ana i nga pona.
- Whakamahia nga meka.
- Kaua e hanga mena i runga i nga ingoa manaaki.
- Kaua e pai ki te taapiri i nga tawhā mo nga karaehe me nga whakamaramatanga - he pai ake tenei i te arorau huna e huna ana i roto i te tinana o te karaehe/whakaahua.
Ka whakamarama ahau he aha ahau ka tūtohu kia mahi i tenei i roto i te tuhinga e whai ake nei.
mutunga
Ka mutu me te whakataki. I te tuhinga e whai ake nei ka korero ahau mo Hiera, ENC me PuppetDB.
Ko nga kaiwhakamahi kua rehita anake ka uru ki te rangahau.
Inaa, he maha atu nga korero - Ka taea e au te tuhi tuhinga mo nga kaupapa e whai ake nei, pooti mo nga mea e pai ana koe ki te panui:
- 59,1 orauHe hanga karetao matatau - etahi o nga taumata o muri ake: he kopikopiko, he mapi me etahi atu korero lambda, he kaikohi rauemi, he rauemi kaweake me te whakawhitiwhiti korero i waenga i nga kaihautu ma te Puppet, nga tohu, nga kaiwhakarato, nga momo raraunga waitara.13
- 31,8 orau"Ko ahau te kaiwhakahaere o toku whaea" me pehea ranei matou o Avito i whakahoa ki etahi momo tuumau poppet o nga momo momo rereke, a, ko te tikanga, ko te waahanga mo te whakahaere i te kaimau papeti.7
- 81,8 orauMe pehea te tuhi i te waehere karetao: taputapu, tuhinga, whakamatautau, CI/CD.18
22 nga kaiwhakamahi i pooti. 9 nga kaiwhakamahi i aukati.
Source: will.com