, ved hjælp af den digitale ocean api til at forvalte deres dns,,,,, 37,,,,,,,,, 4,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,,,,, hvad du vil lave, dns vært på digitale ocean, i november 2014, digital ocean bebudede, at den nyligt omlagte dns vært for tjeneste.ud over at være hurtig og pålidelig, brugerne har oplevet ved øjeblikkelig ajourføring af dns - plader.enhver entreprenør eller system administrator kan værdsætte fordelene ved dette: ikke mere vente til ip - adresse opdateringer i forbindelse med migration. i denne forelæsning, kommer vi til at udvide funktionerne i konsollen anvendelse byggede vi sidste gang til at omfatte forvaltning af digitale ocean 's dns tjeneste.,,,,, igen, du kan downloade gratis til anvendelse fra tuts + github register.jeg har sendt en detaljeret opstilling vejledning for konsollen anvendelse på min hjemmeside.du kan også se på min generiske anlæg vejledning for digitale ocean apps.,,, og du kan bruge den digitale ocean web konsol til at forvalte deres dns optegnelser, kan du finde det fordelagtigt at programmatically forvalte dem via api -.,, dokumentation for digitale ocean 's dns api - tjenester er beliggende på to hovedområder:,, områder, område optegnelser, vil vi fokusere på deres områder, og derefter ved konfigureringen af de enkelte dns records.,, punkt dit navn tjenester til digital ocean, før du kan aktivere digitale ocean' s egne dns - tjenester, har du brug for at overføre dit domæne nameservers til digitale ocean nameservers:,, ns1. digitalocean. kom, ns2. digitalocean. kom, ns3. digitalocean. kom, bliver jeg nødt til at tilføje min starwars.io område for denne forelæsning demonstration. her er mit navn - ændring på mit domæne justitssekretær:,,,,, du kan finde hvordan til at pege på, at digitalocean nameservers fra fælles område registratorer hjælpe meget., ved hjælp af den digitale ocean websted for at forvalte dns, lad os tilføje et område til digital ocean 's dns via web brugergrænseflade.langs venstre navigation menu, klik på dns:,,,,, klik, tilføje domæne: ,,,,, her er hvordan digital hav viser deres dns rekord.det er dejligt, at det viser de genererede zone fil nedenfor:,,,,, næste, vil vi tilføje, et område, en rekord for www.starwars. io:,,,,, nu lad os udforske api - og begynder med at downloade nogle af de områder, vi har lige skabt og tilgængelige registre.,, synkroniser jeres dns optegnelser, først, lad os hente listen over de områder ved hjælp af api - grænseflade.i vores konsol anvendelse, klik, områder i navigation bar og klik, tekster, i højre menu.,,, domaincontroller, kode ser sådan ud:,, offentlig funktion actionsync() {$domain = nye domain(). $område - > sync(). $- > omdirigere ("/område /admin)}, spørgsmålet model kræver vores hav komponent funktioner og tilføjer for hvert område, fandt vores lokale database:,, offentlig funktion sync() {$ocean = nye ocean(). $områder = $ocean - > getdomains(); for hvert ($områder som $d) ($domain_id = $- > der tilsættes ($d)}}, her er api - kode fra havet komponent for at hente område liste:,, offentlig funktion getdomains() (//returnere aktion api - $action = $this->digitalOcean->domain(); //return a collection of Action entity $actions = $action->getAll(); return $actions; } ,,Here's the Domain model Add method:,, public function add($domain) { $d = Domain::model()->findByAttributes(array('name'=>$domain->name)); if (empty($d)) { $d = new Domain; } $d->name = $domain->name; $d->ttl = $domain->ttl; $d->zone = $domain->zoneFile; $d->active =1; $d->created_at = $d->created_at; $d->modified_at =new CDbExpression('NOW()'); $d->save(); return $d->id; } ,,You should see something like this after it completes:,,,,, klik, forvalte ikon, i starwars træk - - og du vil se sådan her:,,,,,, lad os synkronisere de tilgængelige registre for starwars.io.klik, - område optegnelser, - det vil kalde, syncrecords, aktioner, domaincontroller:,, offentlig funktion actionsyncrecords ($id) ($dr = nye domainrecord(), dr. - $> tekster ($id); $- > omdirigere (» /område /view /«. $id)},,, domainrecord, model sync metode ser sådan her ud.It makes a request for the domain name's records and adds each to the ,DomainRecord, table in our local database:,, public function sync($id) { \t //lookup domain \t $d = Domain::model()->findByPk($id); $ocean = new Ocean(); $records = $ocean->getDomainRecords($d->name); foreach ($records as $r) { $record_id = $this->add($id,$r); } } ,,Here's the Ocean component ,getDomainRecords, method:,,public function getDomainRecords($name) { $action = $this->digitalOcean->domainRecord(); $actions = $action->getAll($name); return $actions; },,The ,DomainRecord, add method is a bit more detailed:,,public function add($domain_id,$record) { $dr = DomainRecord::model()->findByAttributes(array('record_id'=>$record->id)); if (empty($dr)) { $dr = new DomainRecord; } $dr->domain_id = $domain_id; $dr->record_id = $record->id; $dr->record_name = $record->name; $dr->record_type = $record->type; $dr->record_data = $record->data; if (isset($record->priority)) $dr->priority = $record->priority; else $dr->priority = null; if (isset($record->port)) $dr->port = $record->port; else $dr->port = null; if (isset($record->weight)) $dr->weight = $record->weight; else $dr-> vægt = ugyldig; $dr. - > aktive = 1 $dr. - > created_at = nye cdbexpression ('now()) $dr. - > modified_at = nye cdbexpression (' now()) $dr. - > save(); tilbage dr. - $> id;), her er, hvordan det vil se ud efter område optegnelser sync:,,,,, tilsætning af områder fra vores konsol, du kan også tilføje områder og tilgængelige oplysninger fra vores konsol manuelt.,,,,, her er koden inden model, der påberåber sig api - anmodning om at tilføje det område:,, offentlig funktion remote_add() {$ocean = nye ocean(). $domain = $ocean - > createdomain ($- > navn, $- > ip_address); $- > save(); tilbage.}, her er den Ocean component ,addDomain, method:,, public function createDomain($name,$ip_address) { $action = $this->digitalOcean->domain(); $create = $action->create($name,$ip_address); return $create; } ,,Then, sync the domain records and add your own:,,,,,Here's the ,DomainRecord, model ,remote_add method,:,, public function remote_add($id) { $d = Domain::model()->findByPk($id); $ocean = new Ocean(); $record = $ocean->createDomainRecord($d->name,$this->record_type,$this->record_name,$this->record_data,$this->priority,$this->port,$this->weight); $this->domain_id = $id; $this->record_id = $record->id; $this->active =1; $this->created_at =new CDbExpression('NOW()'); $this->modified_at =new CDbExpression('NOW()'); $this->save(); return true; } ,,Here's the Ocean component ,createDomainRecord, method:,, public function createDomainRecord($domain_name,$type,$name,$data,$priority,$port,$weight) { $domainRecord = $this->digitalOcean->domainRecord(); if ($priority=='') $priority=null; if ($port=='') $port=null; if ($weight=='') $weight=null; //return the created DomainRecord entity of the domain 'bar.dk' $created = $domainRecord->create($domain_name,$type, $name, $data,$priority,$port,$weight); return $created; } ,,You should see something som dette i vores konsol:,,,,, her er det digitale ocean 's web konsol vil vise, hvor vores lokale synspunkt og fjerntliggende synspunkt er identiske:,,,,, som du har bemærket, at denne kodeks mangler solid fejlkontrol, synkronisering, ajourføring, sletning, og andre klokker og fløjter.jeg overlader det til dem at udvide, som du vil, håber jeg, at du har fundet denne efterforskning af den digitale ocean dns api - at være hjælpsom, føl jer fri til post - spørgsmålene og bemærkningerne nedenfor.du kan også kontakte mig på twitter @ reifman eller e - mail mig direkte.følg min tuts + instruktør side se kommende artikler om relaterede emner.,,, beslægtede forbindelser, der kommer i havn 53 nær dig: den nye digitalocean dns!,, hvordan til at pege på, at digitalocean nameservers fra fælles område registratorer, den digitale ocean api, digital ocean v2 php api - bibliotek, digital ocean konsol anvendelse anlæg, vejledning