khanhnnvn

Config Laravel with Apache

 Hệ thống  Comments Off on Config Laravel with Apache
Nov 182020
 

You should config example


SuexecUserGroup "#1029" "#1029"
ServerName khanhnn.com
ServerAlias www.khanhnn.com
ServerAlias mail.khanhnn.com
ServerAlias webmail.khanhnn.com
ServerAlias admin.khanhnn.com
DocumentRoot /home/kols/public_html/public
ErrorLog /var/log/virtualmin/khanhnn.com_error_log
CustomLog /var/log/virtualmin/khanhnn.com_access_log combined
ScriptAlias /cgi-bin/ /home/kols/cgi-bin/
ScriptAlias /awstats/ /home/kols/cgi-bin/
DirectoryIndex index.html index.htm index.php index.php4 index.php5

Hướng dẫn sử dụng phần mềm Trans

 Uncategorized  Comments Off on Hướng dẫn sử dụng phần mềm Trans
Apr 202020
 

1. Tải Trans cho máy tính

Để tải phần mềm Trans cho máy tính các bạn nhấn vào đây.

2. Cách cài đặt phần mềm Trans

Bước 1:

Nhấn chọn link tải TranS cho Windows hoặc Mac để tải phần mềm TranS về máy tính.

Bước 2:

Nhấn chuột phải hoặc kích đúp vào file SetupTranS.exe mới tải về → Run.

Bước 3:

Ngay sau đó sẽ xuất hiện cửa sổ Welcome to the TranS Setup Wizard hãy nhấn Next để đi tiếp.

Bước 4:

Tại cửa sổ Choose a file location bạn hãy chọn thư mục cài đặt ở mục Browse → Next.

Cách cài đặt Trans

Bước 5:

Giao diện Begin installation of TranS sẽ xác nhận lại việc cài đặt, nhấn Install để bắt đầu cài đặt.

Cách cài đặt Trans

Khi quá trình cài đặt hoàn tất hệ thống sẽ có thông báo cài đặt TranS thành công.

Bước 6:

Nhấn Run TranS để bắt đầu sử dụng ứng dụng.

Cách cài đặt Trans

3. Cách dùng Trans học trực tuyến

Bước 1. Khởi động chương trìnhNhấn đúp chuột vào biểu tượng TranS trên màn hình Desktop (máy tính) hoặc trên màn hình ứng dụng (Smartphone).

0 0

Bước 2: Đăng nhậpTừ cửa sổ đăng nhập, nhập tài khoản (email, password).

1 1

Nếu trước đó đã đăng nhập, hãy nhập lại đúng email để xác nhận và đăng nhập.

1

Bước 3: Sau khi đăng nhập thành công, xuất hiện giao diện chính của chương trình.

2

Một số lưu ý:

  1. Số hiệu TranS ID của bạn: (ví dụ 173526) là mã (số hiệu ID) của người đăng nhập.
  2. Nếu là Giảng viên: Mã số này chính là mã số của lớp học, Giảng viên cần cung cấp mã số này cho Sinh viên/Học viên, để Sinh viên/Học viên tham gia vào lớp học.
  3. Nếu là Sinh viên/Học viên: Mã số này được hiển thị kèm theo thông tin của Sinh viên/Học viên, giúp Giảng viên kiểm tra việc điểm danh cũng như mức độ tham gia lớp học của người học.

Bước 4:

Dành cho giáo viên

  • Nếu giảng viên thực hiện buổi giảng dạy tự do (không theo lịch hay thời khóa biểu) có thể chọn ngay chức năng Giáo viên để khởi tạo phòng học và bắt đầu buổi giảng dạy.
  • Nếu thực hiện theo lịch hay thời khóa biểu, Giảng viên cần chọn CÀI ĐẶT PHÒNG để thực hiện cấu hình một số thông tin của lớp học: Kiểm tra danh sách học viên, Cài đặt phòng, Cài đặt lịch/thời khóa biểu …
3

Cửa sổ cài đặt phòng học.

4.1. Tiếp theo, chọn Cài đặt phòng:

4

Kiểu phòng:

  • Bất kỳ khi nào (vào dạy/học bất cứ lúc nào).
  • Theo lịch (theo thời gian định sẵn).
  • Lịch chu kỳ (theo thời khóa biểu).

Chọn yêu cầu xác thực với người dùng:

  • Vào tự do: Cho phép vào tự do mà không cần đăng nhập (không khuyến khích vì khó kiểm soát việc điểm danh).
  • Phải đăng nhập: Chỉ chấp nhận vào phòng khi đăng nhập và tham gia theo TranS ID (khuyến khích).
  1. Tắt tất cả video của người vào học: Tích chọn để không cho phép hiển thị video người học (giúp tiết kiệm lưu lượng nhằm tăng độ mượt cũng như tốc độ truyền tín hiệu từ giảng viên đến lớp học).
  2. Tắt âm ding dong khi có người mới vào: Tích chọn để tắt cảnh báo chuông khi có người tham gia lớp học.

Sau cùng, chọn Lưu để hoàn tất cài đặt Phòng.

4.2. Chọn Đặt lịch phòng

Chức năng này chỉ được phép khi trong phần Cài đặt phòng chọn hình thức Theo lịch hoặc Lịch chu kỳ.

5

Danh sách lịch phòng

6

Thêm lịch phòng theo lịch bất kỳ.

6 1

Theo lịch phòng hình thức Thời khóa biểu.Lưu ý: Nếu Giảng viên cài đặt phòng, chỉ có thể vào lớp (Chọn Giảng viên) khi chọn hình thức tự do. Nếu lớp học diễn ra theo lịch, Giảng viên vào phòng bất cứ khi nào, sẽ xuất hiện hộp thoại cảnh báo sau đây:

7

4.3. Sau khi chọn chức năng Giáo viên để khởi tạo phòng học, xuất hiện cửa sổ video giống như Zoom.Bước tiếp theo, Giảng viên cần kiểm tra microphone và camera (laptop) hoặc camera (chân đế gắn ngoài) để phục vụ cho việc thu âm và ghi hình buổi học.

Thực hiện như sau:

Góc dưới bên phải cửa sổ, chọn mũi tên cạnh Mute.

9

Chọn Audio Setting để kiểm tra Microphone (lưu ý bật loa để kiểm tra): Chọn Test Speaker và Test Mic.

10

Kiểm tra camera: Góc dưới bên phải cửa sổ chính, chọn mũi tên cạnh Stop Video.

9 1

Tiếp theo, chọn Video Setting để thiết lập một số tính năng khác.

4.4. Tắt một số tính năng đối với Sinh viên/Học viên

Việt tắt các tính năng này, đảm bảo cho việc người học không tự ý chia sẻ (share) màn hình hoặc thực hiện vẽ chú thích lên màn hình mà giảng viên đang chia sẻ. Chỉ có Giảng viên mới thực hiện việc chia sẻ hoặc vẽ chú thích.

Thực hiện như sau:

  • Tắt chức năng chia sẻ màn hình (SHARE)

Nhấn vào mũi tên bên cạnh Share, chọn Advanced Sharing Option.

9 2

Chọn Only Host như hình dưới đây (chỉ có Giảng viên mới có thể chia sẻ).

13
  • Tắt chức năng vẽ chú thích (Annotation)

Chọn chức năng Share để thực hiện chia sẻ màn hình, chọn Screen để chia sẻ màn hình, chọn Whiteboard để chia sẻ nội dung được thể hiện trên bảng (dùng camera chân đế để ghi hình các nội dung từ bảng viết), tiếp theo chọn Share.

13 1

Kế tiếp, chọn More, tiếp theo chọn Disable partiipants annotation.

Đến đây, nếu hình ảnh hiển thị và thiết bị âm thanh hoạt động ổn định, việc kiểm tra thành công. Giáo viên bắt đầu có thể thực hiện các hoạt động giảng dạy của mình.Chúc các bạn thành công./.

Install WordPress on Ubuntu 18.04 LTS with Nginx, MariaDB and PHP-FPM

 Hệ thống  Comments Off on Install WordPress on Ubuntu 18.04 LTS with Nginx, MariaDB and PHP-FPM
Apr 112020
 

STEP 1: PREPARE AND UPDATE UBUNTU

It’s good to always update Ubuntu servers before installing packages… to update Ubuntu, run the commands below.

sudo apt update && sudo apt dist-upgrade && sudo apt autoremove

After updating Ubuntu, continue below with installing required packages for WordPress to work.

STEP 2: INSTALL Nginx WEB SERVER

After updating Ubuntu, run the commands below to install Nginx HTTP Server..

sudo apt install nginx

After installing Nginx, the commands below can be used to stop, start and enable Nginx service to always start up with the server boots.

sudo systemctl stop nginx.service
sudo systemctl start nginx.service
sudo systemctl enable nginx.service

STEP 3: INSTALL MARIADB DATABASE SERVER

MariaDB database server is rapidly overtaking MySQL in the open source and Linux communities… MariaDB is the default database server on majority of Linux distributions… and WordPress requires a database server.. run the commands below to install MariaDB.

sudo apt install mariadb-server mariadb-client

After installing, the commands below can be used to stop, start and enable MariaDB service to always start up when the server boots.

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

After that, run the commands below to secure MariaDB server and create a new root password.

sudo mysql_secure_installation

When prompted, answer the questions below by following the guide.

  • Enter current password for root (enter for none): Just press Enter
  • Set root password? [Y/n]: Y
  • New password: Enter password
  • Re-enter new password: Repeat password
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]:  Y
  • Reload privilege tables now? [Y/n]:  Y

STEP 4: INSTALL PHP-FPM AND RELATED MODULES

Now that Nginx and MariaDB are installed, run the commands below to install PHP-FPM and related PHP modules on the new server. This is a good list of PHP modules to install.

sudo apt install php-fpm php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-ldap php-zip php-curl

After installing PHP, run the commands below to open PHP-FPM default configuration file.

sudo nano /etc/php/7.2/fpm/php.ini

Then scroll down the lines in the file and change the following lines below and save.

post_max_size = 100M
memory_limit = 256M
max_execution_time = 360
upload_max_filesize = 100M
date.timezone = America/Chicago

STEP 5: CREATE A BLANK WORDPRESS DATABASE

At this point, all the required WordPress packages and and servers are installed. The new server  is now ready to host WordPress… On the new server, create a blank WordPress database. WordPress will use this empty database to store its content.

Run the commands below to logon to the database server. When prompted for a password, type the root password you created above.

sudo mysql -u root -p

Then create a blank database called WP_database  you can use the same database name from the old server.

CREATE DATABASE WP_database;

Create a database user called wp_user with new password.  You can use the same username and password from the old server.

CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'type_password_here';

Then grant the user full access to the database.

GRANT ALL ON WP_database.* TO 'wp_user'@'localhost' IDENTIFIED BY 'type_user_password_here' WITH GRANT OPTION;

Finally, save your changes and exit.

FLUSH PRIVILEGES;
EXIT;

STEP 6: DOWNLOAD WORDPRESS LATEST RELEASE

Next, visit WordPress site and download the latest…. or run the commands below to do that for you.

cd /tmp && wget https://wordpress.org/latest.tar.gz
tar -zxvf latest.tar.gz
sudo mv wordpress /var/www/html/wordpress

Then run the commands below to set the correct permissions for WordPress root directory.

sudo chown -R www-data:www-data /var/www/html/wordpress/
sudo chmod -R 755 /var/www/html/wordpress/

STEP 7: CONFIGURE WORDPRESS

Next, run the commands below to create WordPress wp-config.php file. This is the default configuration file for WordPress.

sudo mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php

Then run the commands below to open WordPress configuration file.

sudo nano /var/www/html/wordpress/wp-config.php

Enter the highlighted text below that you created for your database and save.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'WP_database');

/** MySQL database username */
define('DB_USER', 'wp_user');

/** MySQL database password */
define('DB_PASSWORD', 'new_password_here');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

Save the file and you’re done.

STEP 8: CONFIGURE THE NEW WORDPRESS SITE

Next, configure the WordPress site configuration file on the server. Run the commands below to create a new configuration file called wordpress

sudo nano /etc/nginx/sites-available/wordpress

Then copy and paste the content below into the file and save it. Replace example.com with your own domain name.

server {
    listen 80;
    listen [::]:80;
    root /var/www/html/wordpress;
    index  index.php index.html index.htm;
    server_name  example.com www.example.com;

     client_max_body_size 100M;

    location / {
        try_files $uri $uri/ /index.php?$args;        
    }

    location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass             unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Save the file and exit.

STEP 9: ENABLE THE WORDPRESS SITE

After configuring the VirtualHost above, enable it by running the commands below

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/

Now all is configured… run the commands below to reload Nginx web server and PHP-FPM settings.

sudo systemctl restart nginx.service
sudo systemctl restart php7.2-fpm.service

After restarting Nginx, open your browser and browse to the server IP address or hostname. If everything was setup correctly, you should see WordPress default configuration wizard.http://example.com

WordPress default setup page

Follow the on-screen instructions until you’re successfully configured WordPress. When you’re done, login to the admin dashboard and configure WordPress settings.

Congratulations! You’ve just successfully installed WordPress.

Làm việc với CentOS

 Hệ thống  Comments Off on Làm việc với CentOS
Feb 212020
 

Chào các bạn,

Để làm việc với CentOS hiệu quả có số việc tôi muốn chia sẻ vớic các bạn để làm việc đó như sau:

  1. Thiết lập history

export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT=”[%F %T] “

Làm việc với Mysql Server

 Database  Comments Off on Làm việc với Mysql Server
Feb 202020
 

Disable mod only_full_group_by của msql :

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,’ONLY_FULL_GROUP_BY’,”));

Kiểm tra lại:

SELECT @@sql_mode;

GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.31.1’ IDENTIFIED BY ‘daicakhanh21*’;
flush privileges;

Chạy ứng dụng Nodejs sử dụng PM2

 Uncategorized  Comments Off on Chạy ứng dụng Nodejs sử dụng PM2
Feb 172020
 

Khởi động app
$ pm2 start app.js

Load Balance 4 instances of api.js:
$ pm2 start api.js -i 4
Monitor in production:
$ pm2 monitor
Make pm2 auto-boot at server restart:
$ pm2 startup

Các lệnh hay làm việc với Ubuntu

 Hệ thống  Comments Off on Các lệnh hay làm việc với Ubuntu
Feb 172020
 

useradd -m -d /opt/home/khanhnnvn khanhnnvn

Cho tài khoản có quyền sudo

usermod -aG sudo khanhnnvn

List các tài khoản có quyền sudo:

grep '^sudo:.*$' /etc/group | cut -d: -f4

ufw allow from 183.81.32.14 to any port 3306

GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.31.1’ IDENTIFIED BY ‘daicakhanh21*’;
flush privileges;

Sự khác biệt giữa Permissioned và Permissionless Blockchain

 BlockChain  Comments Off on Sự khác biệt giữa Permissioned và Permissionless Blockchain
Oct 082019
 

Một trong những phần lớn nhất trong công nghệ blockchain chính là permissioned blockchain (blockchain được cấp phép hay blockchain đóng) và permissionless blockchain (blockchain không cần cấp phép hay blockchain mở). Sự khác biệt cơ bản khá rõ ràng: Bạn cần phê duyệt để sử dụng một permissioned blockchain, trong khi bất kỳ ai cũng có thể tham gia vào các hệ thống không cần cấp phép (permissionless). Ví dụ, blockchain Bitcoin ban đầu vẫn hoàn toàn mở, nhưng khi các công ty và tổ chức bắt đầu áp dụng công nghệ này, họ đã sẵn sàng hy sinh sự tin cậy và tính minh bạch để có quyền kiểm soát truy cập cũng như tùy chỉnh dễ dàng hơn.

Permissioned và Permissionless Blockchain thực sự không nên được sử dụng cho cùng một thứ. Ví dụ, mọi người có lẽ không quan tâm đến việc sử dụng một loại tiền điện tử được cấp phép (permissioned cryptocurrency), vì một trong những điểm hấp dẫn nhất của tiền điện tử là không ai có thể kiểm soát cách thức hoạt động của nó hoặc nơi nó đến. Ngược lại, một công ty như Maersk, sử dụng blockchain để theo dõi dịch vụ hậu cần vận chuyển của mình, không muốn đưa tất cả dữ liệu bí mật của mình lên một permissionless blockchain.

So sánh Permissioned và Permissionless Blockchain

  • Permissioned và Permissionless Blockchain có gì giống nhau?
  • Permissioned và Permissionless Blockchain co gì khác nhau?
    • Permissionless Blockchain
    • Permissioned blockchain
  • Permissioned hay permissionless blockchain tốt hơn?

Permissioned và Permissionless Blockchain có gì giống nhau?

Cả permissioned và permissionless blockchain đều có một số đặc điểm quan trọng:

Permissioned và Permissionless Blockchain có gì giống nhau?
  • Chúng là hai distributed ledger (sổ cái phân tán), có nghĩa là có nhiều phiên bản của cùng một dữ liệu được lưu trữ ở những nơi khác nhau và được kết nối thông qua một số loại mạng.
  • Cả hai đều sử dụng một số hình thức của cơ chế đồng thuận (consensus mechanism), nghĩa là chúng có cách để nhiều phiên bản sổ cái đạt được sự đồng thuận về việc chúng thực sự trông sẽ ra sao.
  • Cả hai về mặt lý thuyết đều bất biến theo nghĩa là dữ liệu chúng lưu trữ không thể bị thay đổi nếu không có đủ quyền kiểm soát mạng. Thậm chí sau đó, các block (khối) được liên kết bằng hàm băm mật mã (cryptographic hash) sẽ thay đổi nếu có bất kỳ dữ liệu nào bị thay đổi.

Nói một cách đơn giản, cả permissioned và permissionless blockchain đều sử dụng mật mã và phân cấp ở nhiều mức độ khác nhau, để lưu trữ chính xác dữ liệu ở định dạng khó hack hoặc thay đổi.

Permissioned và Permissionless Blockchain co gì khác nhau?

Permissionless Blockchain

Hầu hết các blockchain mà bạn từng nghe nói đều rơi vào loại này: Bitcoin, Ethereum, Litecoin, Dash và Monero. Tất cả những cái khác là blockchain công khai mà bất cứ ai cũng có thể giao dịch hoặc thậm chí tham gia với tư cách là validator (người xác thực).

Permissionless Blockchain

Tất cả dữ liệu được lưu trữ trên các chuỗi này đều có sẵn công khai và các bản sao đầy đủ của sổ cái được lưu trữ trên toàn thế giới. Đó là điều khiến các hệ thống này rất khó bị hack hoặc kiểm duyệt. Không ai điều hành blockchain, không ai có thể hạn chế quyền truy cập vào nó và bạn vẫn tương đối ẩn danh vì không cần phải xác minh chính mình để nhận một địa chỉ và thực hiện giao dịch.

Loại blockchain này có xu hướng tạo ra tiếng vang vì nó có những gì làm nền tảng cho hầu hết các loại tiền điện tử và những giải pháp phân cấp thú vị nhất. Sự cường điệu này là xứng đáng, vì các permissionless blockchain công khai có khả năng cách mạng hóa những dịch vụ trước đây yêu cầu người trung gian đáng tin cậy – không chỉ là tiền tệ. Ví dụ, một blockchain bất biến của ô tô có thể cung cấp cho bạn khả năng tra cứu dữ liệu đáng tin cậy trên mọi bộ phận, hồ sơ dịch vụ và giao dịch liên quan đến một chiếc xe đã qua sử dụng, thay vì tin tưởng một người trung gian nào đó.

Tất nhiên, hệ thống này không hề hoàn hảo. Nó có thể chậm, khó xây dựng và mở rộng quy mô, quá minh bạch để lưu trữ dữ liệu nhạy cảm, khó kiểm soát truy cập, tốn nhiều năng lượng và phức tạp. Đó là lý do tại sao các permissioned blockchain đang trở thành một giải pháp phổ biến hơn cho các công ty và tổ chức muốn sử dụng blockchain để thay thế các hệ thống truyền thống.

Permissioned blockchain

Tóm lại, permissioned blockchain chỉ dành cho những người được phép truy cập. Bất cứ ai muốn xác thực các giao dịch và/hoặc xem dữ liệu trên mạng, trước tiên phải được central authority (bộ phận trung tâm, chịu trách nhiệm quản lý chính) chấp thuận.

Permissioned blockchain

Điều này đặc biệt hữu ích cho các ngân hàng, công ty và những tổ chức khác phải tuân thủ các quy định và không muốn mất quyền kiểm soát hoàn toàn dữ liệu. Thay vì xây dựng trên một blockchain lớn, phi tập trung như Ethereum, các đơn vị này có thể tạo ra một giải pháp tùy chỉnh, chỉ được điều hành bởi những tổ chức mà họ chấp thuận.

Hãy tưởng tượng một công ty chuyên bán dưa hấu đưa chuỗi cung ứng của họ lên một tầm cao mới:

1. Công ty quyết định xây dựng một hệ thống blockchain để theo dõi trái cây của mình từ trang trại đến cửa hàng. Họ muốn biết chính xác ai là người tham gia trong mỗi bước, vì vậy công ty này quyết định sử dụng một permissioned blockchain mà chỉ người dùng được ủy quyền mới có thể truy cập.

2. Họ xây dựng Melonchain và cung cấp cho mỗi điểm trên chuỗi cung ứng cách để truy cập và thêm dữ liệu, được xác thực bởi một mạng lưới các máy chủ do công ty điều hành. Bằng cách này, bất cứ khi nào dữ liệu về một quả dưa được ghi lại, nó có thể được tra cứu trong sổ cái và được xác minh bằng mật mã sau đó.

3. Một số dữ liệu nhất định về mỗi quả dưa hấu, như ngày và địa điểm thu hoạch, được công khai cho người tiêu dùng, trong khi các dữ liệu khác, như chuyển động chính xác trong chuỗi cung ứng, được giữ bí mật để giúp công ty duy trì lợi thế cạnh tranh.

Tiền điện tử Libra của Facebook là một ví dụ điển hình khác. Nó có thể ra mắt công chúng trong tương lai, nhưng tại thời điểm ra mắt, chỉ một số công ty được chọn, đã đầu tư và được phê duyệt, mới có quyền vận hành nó và người dùng có thể phải đăng ký bằng danh tính thực.

Những lợi thế lớn của permissioned blockchain là chúng có:

  • Quyền kiểm soát truy cập
  • Khả năng tùy biến cao
  • Thay đổi thời gian dễ dàng hơn để tuân thủ các quy định
  • Hiệu quả năng lượng tốt hơn
  • Khả năng mở rộng tốt hơn

Tuy nhiên, chúng cũng có những nhược điểm. Đó là:

  • Tập trung hơn
  • Ít minh bạch
  • Dễ bị tấn công và thao túng hơn
  • Dễ dàng kiểm duyệt hơn
  • Ít ẩn danh hơn

Permissioned hay permissionless blockchain tốt hơn?

Các permissioned và permissionless blockchain chỉ là những nhánh của cùng một công nghệ, được phát triển để đáp ứng nhiều nhu cầu khác nhau. Cả hai đều hữu ích theo cách riêng của mình, đối với hầu hết các mục đích và công nghệ khác nhau trong thực tế.

Điều này có nghĩa là những lợi ích do permissionless blockchain mang lại không trực tiếp tác động đến các hệ thống được cấp phép, vì vậy việc một công ty nói rằng mình sử dụng công nghệ blockchain không hẳn nghĩa là nó riêng tư hoặc phi tập trung hơn nhiều so với cơ sở dữ liệu truyền thống. Nắm được sự biệt giữa permissioned và permissionless blockchain là một phần khá quan trọng.

Reset MySQL 5.7 root password

 Database  Comments Off on Reset MySQL 5.7 root password
Apr 092019
 
sudo mysqld_safe --skip-grant-tables &

Then when paste this and hit [ENTER]
mysql -uroot
use mysql;
update user set authentication_string=password('YOURSUPERSECRETPASSWORD') where user='root';
flush privileges;
quit
Restart MySQL
Login Mysql and change pass
set password=password('Admin321*');

Cài đặt Kubernetes trên Ubuntu

 Database  Comments Off on Cài đặt Kubernetes trên Ubuntu
Mar 052019
 

Kubernetes là một hệ thống mã nguồn mở để tự động triển khai, scaling, quản lý các container. Kubernetes được xây dựng bởi Google dựa trên kinh nghiệm quản lý sử dụng các container trong khi triển khai một hệ thống quản lý gọi là Borg ( nhiều lúc gọi là Omega).

Chuẩn bị

Cấu hình địa chỉ IP tĩnh

vim /etc/network/interfaces

iface enp2s0 inet static
address 172.16.12.120
netmask 255.255.255.0
network 172.16.12.0
gateway 172.16.12.1
dns-nameservers 8.8.8.8

Thiết lập file host theo yêu cầu, chú ý thiết lập cả trên master và các node

vim /etc/hosts

172.16.12.120 k8s-master
172.16.12.135 k8s-node1
172.16.12.136 k8s-node2

service networking restart

Cập nhật các bản vá

apt update && apt upgrade -y

Thiết lập kho cài đặt k8s

apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add –

cat </etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

Cài đặt K8s

apt-get update
apt-get install -y kubelet kubeadm kubectl docker.io

Tiếp theo các bạn chạy lệnh sau:

kubeadm init –pod-network-cidr 10.244.0.0/16

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/confi
chown $(id -u):$(id -g) /root/.kube/config

Tiếp tục chạy lệnh

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Thống kê các namespaces đang chạy

kubectl get pods –all-namespaces
watch kubectl get pods –all-namespaces

Khởi động lại dịch vụ

systemctl daemon-reload
systemctl restart kubelet
kubectl get node
watch kubectl get node

Cài đặt Dashboard cho k8s

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

Run command

cat < /root/khanh1.yml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
EOF

cat < /root/khanh2.yml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:

  • kind: ServiceAccount
    name: admin-user
    namespace: kube-system

EOF

Thực hiện chạy lệnh để apply

kubectl apply -f /root/khanh1.yml
kubectl apply -f /root/khanh2.yml

Hiển thị token để đăng nhập vào dashboard

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk ‘{print $1}’)

kubectl proxy –address 0.0.0.0 –accept-hosts=’^*$’

http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

—————————————– Install Keepalived ——————————-

  1. Install

apt-get install keepalived -y

  1. Create file keepalived.conf

vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 101
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.12.123
}
}

  1. Copy file to node server and start it

service keepalived start

  1. Check

ip addr show eth0

result

2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:a5:ee:89 brd ff:ff:ff:ff:ff:ff
inet 172.16.12.120/24 brd 172.16.12.255 scope global ens33
valid_lft forever preferred_lft forever
inet 172.16.12.123/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fea5:ee89/64 scope link
valid_lft forever preferred_lft forever

   Note: Max 20 ip per vip