Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Integrasi Berterusan adalah praktik pembangunan perisian DevOps yang membolehkan para pemaju sering menggabungkan kod yang diubahsuai ke repositori bersama berkali-kali setiap hari. Selepas setiap gabungan, terbina dan ujian automatik dilakukan untuk mengesan masalah dalam kod. Ia membolehkan pemaju untuk mencari dan menyelesaikan kesilapan dengan cepat untuk meningkatkan kualiti perisian dan menyediakan penghantaran berterusan perisian. Beralih ke dan dari Concourse sangat mudah kerana ia menyimpan semua konfigurasi dalam fail deklaratif yang boleh diperiksa ke dalam kawalan versi. Ia juga menyediakan antara muka pengguna web yang memaparkan maklumat bina secara interaktif.
Pastikan anda menggantikan semua kejadian 192.0.2.1
dan ci.example.com
dengan alamat IP awam Vultr sebenar anda dan nama domain sebenar anda.
Kemas kini sistem asas anda menggunakan panduan Cara Mengemas kini CentOS 7 . Setelah sistem anda dikemas kini, terus pasang PostgreSQL.
PostgreSQL adalah sistem pangkalan data hubungan objek. Concourse menyimpan data saluran paipnya ke dalam pangkalan data PostgreSQL. Tambahkan repositori PostgreSQL.
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Pasang pelayan pangkalan data PostgreSQL.
sudo yum -y install postgresql96-server postgresql96-contrib
Inisialkan pangkalan data.
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
initdb
membuat kluster pangkalan data PostgreSQL baru, yang merupakan kumpulan pangkalan data yang diuruskan oleh satu contoh pelayan. Edit pg_hba.conf
fail untuk mengaktifkan pengesahan berasaskan MD5.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Cari baris berikut dan tukar nilai peer
dan ident
dalam METHOD
ruang kepada trust
dan md5
, masing-masing.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
Setelah dikemas kini, konfigurasi harus kelihatan seperti ini.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Mulakan pelayan PostgreSQL dan dayakannya secara automatik pada masa boot.
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Tukar kata laluan untuk pengguna PostgreSQL lalai.
sudo passwd postgres
Log masuk sebagai pengguna PostgreSQL:
sudo su - postgres
Buat pengguna PostgreSQL baru untuk Concourse CI.
createuser concourse
Catatan : Pengguna PostgreSQL lalai dapat digunakan untuk pengesahan pangkalan data, tetapi disarankan untuk menggunakan pengguna khusus untuk pengesahan pangkalan data Concourse dalam persediaan produksi.
PostgreSQL menyediakan shell untuk menjalankan pertanyaan pada pangkalan data. Tukar ke shell PostgreSQL dengan menjalankan:
psql
Tetapkan kata laluan untuk pengguna pangkalan data Concourse yang baru dibuat.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Penting : Ganti DBPassword
dengan kata laluan yang kuat. Buat nota kata laluan kerana ia akan diperlukan kemudian dalam tutorial.
Buat pangkalan data baru untuk Concourse.
CREATE DATABASE concourse OWNER concourse;
Keluar dari psql
cangkerang.
\q
Beralih ke pengguna sudo dari pengguna postgres semasa.
exit
Muat turun versi terbaru dari Concourse yang dapat dilaksanakan dan simpan /usr/bin
sehingga dapat dilaksanakan secara langsung. Versi terbaru binari Concourse and Fly boleh didapati di halaman muat turun Concourse . Keluaran baru sangat kerap. Gantikan pautan di bawah dengan pautan baru untuk versi terkini.
sudo wget https://github.com/concourse/concourse/releases/download/v3.4.1/concourse_linux_amd64 -O /usr/bin/concourse
Begitu juga, muat turun versi terbaru lalat yang boleh dieksekusi dan simpan di dalamnya /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.4.1/fly_linux_amd64 -O /usr/bin/fly
Fly adalah antara muka baris perintah untuk menyambung ke API ATC Concourse CI. Fly tersedia untuk pelbagai platform seperti Linux, Windows dan MacOS.
Tentukan kebenaran pelaksanaan untuk dimuat turun concourse
dan fly
binari.
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Semak sama ada Concourse and Fly berfungsi dengan betul dengan menyemak versi mereka.
concourse -version
fly -version
Pasangan utama RSA menyediakan cara untuk menyulitkan komunikasi antara komponen Concourse.
Untuk Concourse untuk bekerja, sekurang-kurangnya tiga pasang kunci mesti dihasilkan. Untuk menyulitkan data sesi, menjana a session_signing_key
. Kunci ini juga akan digunakan oleh TSA untuk menandatangani permintaan yang dibuat kepada ATC. Untuk melindungi pelayan TSA SSH, buat a tsa_host_key
. Akhirnya, hasilkan worker_key
untuk setiap pekerja.
Buat direktori baru untuk menyimpan kunci dan konfigurasi yang berkaitan dengan Concourse CI.
sudo mkdir /opt/concourse
Hasilkan kunci yang diperlukan.
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/session_signing_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/tsa_host_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/worker_key
Memberi kebenaran kunci awam pekerja dengan menyalin kandungannya ke authorized_worker_keys
fail:
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
Concourse menyediakan dua komponen berasingan yang perlu dimulakan, web dan pekerja. Mulakan laman web Concourse.
sudo concourse web \
--basic-auth-username admin \
--basic-auth-password StrongPass \
--session-signing-key /opt/concourse/session_signing_key \
--tsa-host-key /opt/concourse/tsa_host_key \
--tsa-authorized-keys /opt/concourse/authorized_worker_keys \
--postgres-user=concourse \
--postgres-password=DBPassword \
--postgres-database=concourse \
--external-url http://192.0.2.1:8080
Tukar nama pengguna dan kata laluan basic-auth
jika dikehendaki. Pastikan laluan ke fail utama adalah betul dan pastikan nilai yang betul untuk nama pengguna dan kata laluan dalam konfigurasi pangkalan data PostgreSQL disediakan.
Catatan : ATC akan mendengar port lalai 8080
dan TSA akan mendengar port 2222
. Sekiranya pengesahan tidak diingini, lulus --no-really-i-dont-want-any-auth
pilihan setelah membuang pilihan autentikasi asas.
Setelah pelayan web dimulakan, output berikut harus dipaparkan.
{"timestamp":"1503657859.661247969","source":"tsa","message":"tsa.listening","log_level":1,"data":{}}
{"timestamp":"1503657859.666907549","source":"atc","message":"atc.listening","log_level":1,"data":{"debug":"127.0.0.1:8079","http":"0.0.0.0:8080"}}
Hentikan pelayan buat masa sekarang, kerana beberapa perkara lagi mesti ditetapkan.
Mulakan Concourse CI Worker.
sudo concourse worker \
--work-dir /opt/concourse/worker \
--tsa-host 127.0.0.1 \
--tsa-public-key /opt/concourse/tsa_host_key.pub \
--tsa-worker-private-key /opt/concourse/worker_key
Perintah di atas akan menganggap bahawa TSA berjalan di localhost dan mendengar port lalai 2222
.
Walaupun web dan pekerja Concourse boleh dimulakan dengan mudah menggunakan arahan di atas, disyorkan untuk menggunakan Systemd untuk menguruskan pelayan.
Menggunakan perkhidmatan Systemd untuk mengurus aplikasi memastikan bahawa aplikasi secara automatik dimulakan pada kegagalan dan pada waktu boot. Server Concourse tidak mengambil data dari sebarang fail konfigurasi, tetapi ia boleh mengakses data dari pembolehubah persekitaran. Daripada menetapkan pembolehubah persekitaran global, buat fail baru untuk menyimpan pembolehubah persekitaran dan kemudian lulus pembolehubah ke Concourse CI menggunakan perkhidmatan Systemd.
Buat fail persekitaran baru untuk web Concourse.
sudo nano /opt/concourse/web.env
Isi fail.
CONCOURSE_SESSION_SIGNING_KEY=/opt/concourse/session_signing_key
CONCOURSE_TSA_HOST_KEY=/opt/concourse/tsa_host_key
CONCOURSE_TSA_AUTHORIZED_KEYS=/opt/concourse/authorized_worker_keys
CONCOURSE_POSTGRES_USER=concourse
CONCOURSE_POSTGRES_PASSWORD=DBPassword
CONCOURSE_POSTGRES_DATABASE=concourse
CONCOURSE_BASIC_AUTH_USERNAME=admin
CONCOURSE_BASIC_AUTH_PASSWORD=StrongPass
CONCOURSE_EXTERNAL_URL=http://192.0.2.1:8080
Tukar nama pengguna dan kata laluan BASIC_AUTH
jika dikehendaki. Pastikan laluan ke fail utama adalah betul dan pastikan nilai yang betul untuk nama pengguna dan kata laluan dalam konfigurasi pangkalan data PostgreSQL disediakan.
Begitu juga, buat file persekitaran untuk pekerja.
sudo nano /opt/concourse/worker.env
Isi fail.
CONCOURSE_WORK_DIR=/opt/concourse/worker
CONCOURSE_TSA_WORKER_PRIVATE_KEY=/opt/concourse/worker_key
CONCOURSE_TSA_PUBLIC_KEY=/opt/concourse/tsa_host_key.pub
CONCOURSE_TSA_HOST=127.0.0.1
Oleh kerana fail persekitaran mengandungi nama pengguna dan kata laluan, ubah izinnya sehingga tidak dapat diakses oleh pengguna lain.
sudo chmod 600 /opt/concourse/*.env
Sekarang buat pengguna baru untuk Concourse untuk menjalankan persekitaran web. Ini akan memastikan pelayan web berjalan di persekitaran terpencil.
sudo adduser --system concourse
Berikan hak milik pengguna concourse atas direktori fail Concourse CI.
sudo chown -R concourse:concourse /opt/concourse
Buat fail perkhidmatan systemd baru untuk perkhidmatan web Concourse.
sudo nano /etc/systemd/system/concourse-web.service
Isi fail.
[Unit]
Description=Concourse CI web server
After=postgresql-9.6.service
[Service]
Type=simple
User=concourse
Group=concourse
Restart=on-failure
EnvironmentFile=/opt/concourse/web.env
ExecStart=/usr/bin/concourse web
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_web
[Install]
WantedBy=multi-user.target
Simpan dan tutup fail. Buat fail perkhidmatan baru untuk perkhidmatan pekerja Concourse.
sudo nano /etc/systemd/system/concourse-worker.service
Isi fail.
[Unit]
Description=Concourse CI worker process
After=concourse-web.service
[Service]
Type=simple
User=root
Group=root
Restart=on-failure
EnvironmentFile=/opt/concourse/worker.env
ExecStart=/usr/bin/concourse worker
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_worker
[Install]
WantedBy=multi-user.target
Perkhidmatan web dan pekerja kini boleh dimulakan secara langsung dengan menjalankan:
sudo systemctl start concourse-web concourse-worker
Untuk membolehkan proses pekerja dan web bermula secara automatik pada waktu boot, jalankan:
sudo systemctl enable concourse-worker concourse-web
Untuk memeriksa status perkhidmatan, jalankan:
sudo systemctl status concourse-worker concourse-web
Jika perkhidmatan tidak dimulakan, atau dalam FAILED
keadaan, alih keluar cache dari /tmp
direktori.
sudo rm -rf /tmp/*
Mulakan semula perkhidmatan.
sudo systemctl restart concourse-worker concourse-web
Perhatikan bahawa kali ini perkhidmatan telah bermula dengan betul. Hasil apabila mengesahkan status perkhidmatan harus serupa.
[user@vultr ~]$ sudo systemctl status concourse-worker concourse-web
● concourse-worker.service - Concourse CI worker process
Loaded: loaded (/etc/systemd/system/concourse-worker.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3037 (concourse)
CGroup: /system.slice/concourse-worker.service
└─3037 /usr/bin/concourse worker
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.934722900","source":"tsa","message":"t...""}}
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.941227913","source":"guardian","messag...0"}}
...
● concourse-web.service - Concourse CI web server
Loaded: loaded (/etc/systemd/system/concourse-web.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3036 (concourse)
CGroup: /system.slice/concourse-web.service
└─3036 /usr/bin/concourse web
Aug 26 07:27:57 vultr.guest concourse_web[3036]: {"timestamp":"1503732477.925554752","source":"tsa","message":"tsa...ve"}}
Aug 26 07:28:02 vultr.guest concourse_web[3036]: {"timestamp":"1503732482.925430775","source":"tsa","message":"tsa...ve"}}
...
Hint: Some lines were ellipsized, use -l to show in full.
Laraskan firewall anda untuk membolehkan port 8080, di mana ATS berjalan dan port 2222, di mana TSA berjalan.
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2222/tcp --permanent
sudo firewall-cmd --reload
Apabila pelayan dimulakan, antara muka web Concourse CI boleh diakses dengan pergi ke http://192.0.2.1:8080
mana-mana penyemak imbas. Log masuk menggunakan nama pengguna dan kata laluan yang disediakan dalam fail persekitaran.
Untuk menyambung ke pelayan menggunakan Fly, jalankan:
fly -t my-ci login -c http://192.0.2.1:8080
Perintah di atas digunakan untuk masuk awal ke pelayan. -t
digunakan untuk memberikan nama sasaran. ganti my-ci
dengan nama sasaran yang dikehendaki. Perintah di atas akan log masuk ke pasukan lalai main
. Ia akan meminta nama pengguna dan kata laluan yang disediakan dalam fail persekitaran.
Keluarannya akan seperti berikut.
[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'
username: admin
password:
target saved
Log masuk sasaran akan disimpan selama sehari. Selepas itu, ia akan tamat tempoh.
Untuk log keluar segera.
fly -t my-ci logout
fly boleh digunakan untuk masuk ke pelayan di luar rangkaian, tetapi hanya jika pelayan mempunyai alamat IP awam dan dapat diakses dari luar rangkaian. Binari Windows atau MacOS boleh dimuat turun dari tapak muat turun atau dari UI web pelayan.
Log masuk, dan maklumat lain yang dihantar melalui UI web ke pelayan Concourse tidak selamat. Sambungan tidak disulitkan. Proksi terbalik Nginx boleh disediakan dengan SSL Let's Encrypt percuma.
Pasang pelayan web Nginx dan Certbot, yang merupakan aplikasi pelanggan untuk Let's Encrypt CA.
sudo yum -y install certbot-nginx nginx
Mulakan dan aktifkan Nginx secara automatik pada waktu boot:
sudo systemctl start nginx
sudo systemctl enable nginx
Sebelum permintaan dibuat untuk sijil, port 80 dan 443, atau perkhidmatan HTTP dan HTTPS standard, mesti diaktifkan melalui firewall. Certbot akan memeriksa pihak berkuasa domain sebelum mengeluarkan sijil.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
Port 8080 tidak perlu lagi dibenarkan melalui firewall lagi kerana Concourse kini akan dijalankan pada port HTTPS standard. Keluarkan entri firewall untuk membenarkan port 8080.
sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
sudo firewall-cmd --reload
Nota
Untuk mendapatkan sijil dari Let's Encrypt CA, domain yang akan dibuat sijil mesti diarahkan ke pelayan. Sekiranya tidak, buat perubahan yang diperlukan pada rekod DNS domain dan tunggu DNS disebarkan sebelum membuat permintaan sijil lagi. Certbot memeriksa pihak berkuasa domain sebelum memberikan sijil.
Menjana sijil SSL.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d ci.example.com
Sijil yang dihasilkan kemungkinan akan disimpan dalam /etc/letsencrypt/live/ci.example.com/
direktori. Sijil SSL akan disimpan sebagai fullchain.pem
dan kunci persendirian akan disimpan sebagai privkey.pem
.
Let's Encrypt certificates expire in 90 days, jadi ia disyorkan pembaharuan auto untuk sijil ditetapkan menggunakan cronjobs. Cron adalah perkhidmatan sistem yang digunakan untuk menjalankan tugas berkala.
Buka fail kerja cron.
sudo crontab -e
Tambahkan garisan berikut pada akhir fail.
30 5 * * 1 /usr/bin/certbot renew --quiet
Pekerjaan cron di atas akan dijalankan setiap hari Isnin jam 5:30 pagi. Sekiranya sijil perlu tamat tempoh, ia akan diperbaharui secara automatik.
Buat tuan rumah maya yang baru.
sudo nano /etc/nginx/conf.d/concourse-ssl.conf
Isi fail.
server {
listen 80;
server_name ci.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name ci.example.com;
ssl_certificate /etc/letsencrypt/live/ci.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ci.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/concourse.access.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8080;
proxy_read_timeout 90;
proxy_redirect http://localhost:8080 https://ci.example.com;
}
}
Catatan : Ganti ci.example.com
dengan domain sebenar.
Edit fail Persekitaran yang dibuat untuk Web konsert.
sudo nano /opt/concourse/web.env
Tukar nilai CONCOURSE_EXTERNAL_URL
dan tambahkan dua baris lagi di hujung fail.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Simpan fail dan mulakan semula pelayan web Concourse Web, Worker dan Nginx:
sudo systemctl restart concourse-worker concourse-web nginx
Semua data yang dihantar ke dan dari penyemak imbas kini diamankan dengan penyulitan SSL.
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.
Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.
Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.
Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.
CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?
Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.
Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!
Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.
Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut