1. Chuẩn bị server bằng Docker Container
a. Tạo server
Server áp dụng cho bài viết này thực chất là một container chạy trên image ubuntu thôi nhé, còn bạn nào mua server clound thì có thể bỏ qua bước này.
- Đầu tiên chúng ta phải cài được docker
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $ sudo apt-get update $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo apt-key fingerprint 0EBFCD88 $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io # check version $ docker -v |
- Khởi tại một container với image là ubuntu:
1 2 | docker exec -it --name cap_server ubuntu |
- Kiểm tra xem container đã khởi tạo thành công chưa bằng câu lệnh phía dưới:
1 2 | docker ps |
=> Nếu như thấy có tên container vừa tạo là chúng ta đã xong bước tạo server bằng docker rồi nhé
b. Tạo tài khoản deploy trên server
- Ở bài viết này mình tạo 1 user với tên là deploy, mn có thể tạo tên khác tùy ý
1 2 | adduser deploy |
- Thêm user vừa tạo
deploy
vàosudo
group
1 2 | usermod -aG sudo deploy |
- Truy cập vào user
deploy
1 2 | su - deploy |
=> Đến đây là đã tạo xong user deploy
c. SSH giữa local vào server
a) Setup SSH
- Ở phía
local
:12cat ~/ssh/ir_rsa.pub - Ở phía
cap_server
- Cài đặt
openssh-server
:
123456$ <span class="token function">apt-get</span> update<span class="token comment"># cài đặt openssh-server</span>$ <span class="token function">apt-get</span> <span class="token function">install</span> -y openssh-server$ <span class="token function">service</span> <span class="token function">ssh</span> restart- Thêm ssh key vào server:
1234$ <span class="token function">mkdir</span> ~/.ssh$ <span class="token function">touch</span> ~/.ssh/authorized_keys$ <span class="token function">chmod</span> 600 ~/.ssh/authorized_keys - Cài đặt
- Thêm public key chúng ta vừa
cat
ở trên vào servercap_server
:- Mở file
~/.ssh/authorized_keys
1234<span class="token comment"># Cài editor nano</span>$ <span class="token function">apt-get</span> <span class="token function">install</span> <span class="token function">nano</span>$ <span class="token function">nano</span> ~/.ssh/authorized_keys- Copy paste public key vào file
~/.ssh/authorized_keys
- Save và thoát file
- Mở file
b) Kết nối với cap_server
bằng ssh
- Để kết nối được với
cap_server
chúng ta phải biết được địa chỉ IP của server đó, bài viết này chúng ta dùng container để tạo server thì cách lấy thông tin IP của server mn làm như dưới nhé:12docker inspect cap_server <span class="token operator">|</span> <span class="token function">grep</span> IPAddress
Và địa chỉ IP server của mình là 172.17.0.2
, các bạn nhớ địa chỉ IP server của máy mình để phục vụ cho việc deploy phía dưới nhé
- Thử ssh vào
cap_server
1 2 | <span class="token function">ssh</span> <a class="__cf_email__" href="/cdn-cgi/l/email-protection">[email protected]</a> |
-> Trường hợp mà bạn dùng public key khác thì có thể thêm option -i
vào nhé:
1 2 | <span class="token function">ssh</span> <a class="__cf_email__" href="/cdn-cgi/l/email-protection">[email protected]</a> -i ~/.ssh/id_rsa_another |
Hôm nay mình dừng lại ở đây nhé. Bài sau mình sẽ tiếp tục phần deploy bằng capistrano.
Mn có vấn đề gì trong các bước ở trên thì cmt vào để cùng thảo luận nhé.
Happy coding!