(Acest articol a fost publicat pentru prima dată pe Analitică deschisăși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)
Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.
Pe măsură ce macara comună (Grus Grus) migrează în zona lor de reproducere, este timpul să vă configurați propriul server de macara. Crane este un nou produs open source pentru a găzdui artefacte științifice datelor: rapoarte de analiză a datelor, site -uri de documentare, pachete și biblioteci, puteți citi postarea blogului de introducere aici. Această postare oferă o configurație simplă pentru a începe cu macara folosind Docker Compose.
În primul rând, asigurați -vă că instalați Docker și Docker compune. Apoi, pregătiți configurarea compunerii docker:
-
Creați un nou director numit
crane
şicd
în ea:mkdir crane cd crane
-
Creați câteva date de exemplu:
mkdir data mkdir data/project1 mkdir data/project2 echo "This is a demo of crane!" > data/project1/file1.txt echo "This is a demo of crane!" > data/project2/index.html
-
Creați un fișier
docker-compose.yml
cu următorul conținut:services: crane: image: openanalytics/crane:1.0.0 ports: - "8080:8080" volumes: - "./data:/srv/crane" - "./application.yml:/opt/crane/application.yml"
Acest simplu fișier Docker-Coloppose configurează imaginea Docker de utilizat, expune
8080
port, montează data
Director și The application.yml
Fișier de configurare.
Autentificare de configurare
Macara se poate integra cu orice furnizor de identitate (IDP) care acceptă OpenID Connect. Prin urmare, se poate integra cu toate IDP -urile comune, cum ar fi (Azure) Active Directory, Okta, Auth0 etc. În scopuri demonstrative, integrăm macara cu Gitlab. Înainte de a configura Crane, trebuie să creăm o aplicație OpenID în GitLab:
- Conectați -vă la https://gitlab.com
- În Setări, accesați pagina Aplicații: https://gitlab.com/-/user_settings/applications
- Faceți clic pe
Add new application
buton - completați
crane
ca nume - completați
http://localhost:8080/login/oauth2/code/gitlab
ca redirecționare URI - selectați
openid
,profile
şiemail
scopuri - Faceți clic pe
Save application
buton - Copiați
Application ID
şiSecret
din UI - Faceți clic pe Continuare
Acum este timpul să creăm application.yml
fișier de configurare pentru macara (în același director ca docker-compose.yml
fişier):
app: openid-issuer-uri: https://gitlab.com storage-location: /srv/crane/ repositories: project1: read-access: any-authenticated-user: true project2: read-access: any-authenticated-user: true spring: security: oauth2: client: registration: gitlab: client-id:client-secret: scope: - openid - email - profile provider: gitlab: issuer-uri: https://gitlab.com
Asigurați -vă că completați client-id
şi client-secret
valori, folosind
Application ID
şi Secret
Valori de pe site -ul Gitlab. Cu toate configurațiile gata, puteți porni acum CRANE:
docker compose up
După câteva secunde, linia Started Crane 1.0.0
va fi înregistrat, indicând că macara este gata de utilizare. Deschideți-vă browserul preferat și parcurgeți
http://localhost:8080
. Vei fi redirecționat către Gitlab, întrebându -vă dacă doriți să vă autentificați în macara:
Odată ce îl acceptați, sunteți redirecționat înapoi la Crane și veți vedea o listă de depozite:
Adăugarea autorizației
În configurarea curentă, avem două depozite configurate (project1
şi
project2
) Ambele depozite conțin următoarea configurație de autorizare:
read-access: any-authenticated-user: true
După cum puteți, cu excepția, acest lucru dă citire Acces la orice utilizator care se poate autentifica folosind GitLab. Dacă configurați macara folosind IDP -ul companiei dvs., acest lucru ar însemna că orice utilizator din compania dvs. poate accesa depozitele.
Să restricționăm accesul la project1
prin listarea utilizatorilor care pot accesa depozitul. Actualizați configurația project1
la:
project1: read-access: users: - MyGitLabUsername - AnotherGitLabUsername
Asigurați -vă că eliminați any-authenticated-user
proprietate și pentru a enumera orice nume de utilizator GitLab care pot accesa depozitul. În continuare, reporniți macara oprind comanda anterioară folosind Ctrl+C
și alergând
docker compose up
din nou.
Dacă acum te deschizi http://localhost:8080
Ar trebui să le vezi în continuare pe amândouă project1
şi
project2
. Cu toate acestea, dacă te -ai autentifica cu un cont Gitlab diferit, vei vedea doar project2
. De asemenea, puteți specifica grupuri în loc de utilizatori. Acest lucru nu este posibil atunci când utilizați Gitlab, dar este foarte frecvent atunci când utilizați IDP -ul companiei dvs.
Activarea încărcării
Ca pas următor, să permitem utilizatorilor specifici să încarce fișiere folosind următoarea configurație:
project1: read-access: users: - MyGitLabUsername - AnotherGitLabUsername write-access: users: - MyGitLabUsername
Odată ce reporniți macara, utilizatorul MyGitLabUsername
va putea încărca fișiere folosind UI sau API. Toți ceilalți utilizatori nu vor avea permisiunea de încărcare.
Adăugarea unui depozit public
Deși protejarea datelor dvs. este importantă, este posibil să doriți, de asemenea, să găzduiți o anumită documentație publică. Crane vă permite să găzduiți cu ușurință acest lucru împreună cu toate datele dvs. private. Ca exemplu, vom găzdui documentația pachetului BayEsplot. La fel ca multe alte pachete R, documentația este construită folosind PKGDown.
-
mai întâi clonă documentația într -un nou director (în afara
data
director):git clone -b gh-pages https://github.com/stan-dev/bayesplot/ cd bayesplot
-
Instalați
pkgdown
şibayesplot
pachet:R -q -e "install.packages(c('pkgdown', 'bayesplot'))"
-
Generați site -ul PKGDown:
R -q -e "pkgdown::build_site()"
-
Copiați site -ul în directorul de date:
cp -r * ../data/bayesplot
-
Adăugați depozitul la Crane Config:
app: # .. repositories: bayesplot: read-access: public: true # ...
-
Reporniți macara
Documentația este acum disponibilă la http: // localhost: 8080/bayesplot. Rețineți că puteți actualiza conținutul documentației fără a reporni macara.
Concluzie
Această postare pe blog a explicat cum să începeți cu ușurință cu Crane. Pentru a continua să învățați despre Crane, accesați documentația sau consultați asistența pe care o oferim.