Fabric, Cuisine và Vagrant để tạo môi trường hoàn toàn tự động
Fabric
4
Cuisine
1
Vagrant
14
White

Gà đi bộ viết ngày 19/08/2015

Fabric

Fabric là một tool chạy các tác vụ shell trên môi trường với cấu trúc và độ dễ hiểu của Python. Tôi hay dùng Fabric để thay thế cho các bash ở cấp độ bình thường đến phức tạp. Sử dụng Fabric đơn giản như bất cứ một package Python nào khác

pip install fabric

Tôi sẽ chuẩn bị một file fabfile.py đơn giản nhất

from fabric.api import *
from fabric.decorators import task
env.hosts = ['127.0.0.1']

@task
def bef():
  run('echo before')

@task
def aft():
  sudo('echo after')

@task
def main():
  bef()
  aft()

Ở cùng một folder, gõ fab main sẽ chạy task main ở trên kia.

Cuisine

pip install cuisine 

Cuisine là một thư viện bổ trợ cho fabric, thay thế một số câu lệnh phức tạp bằng những câu lệnh dễ nhớ / dễ hiểu hơn. Tôi thấy Cuisine tiện nhất trong các hàm _ensure()_exists(), để đảm bảo điều kiện một package được cài đặt hay một folder đã được tạo sẵn.

package_ensure('vim') # Ensure that vim is installed.
dir_exists('/home/prof') # Check if /home/prof exists or not

Vagrant

Vagrant là công cụ tự động hóa các tác vụ với máy ảo, làm commandline interface cho Virtualbox, VMWare v.v... Vagrant chưa đạt đến level như docker - một keyword rất hot hiện hay, khi docker về cơ bản chỉ tạo ra những container trong hệ điều hành Linux mà không tạo hẳn một máy ảo, dẫn đến hiệu năng cao hơn và tốc độ nhanh hơn.

Tôi thường dùng Vagrant để tạo môi trường Linux trong máy chủ là Mac/Win, và từ đó xây tiếp docker bên trong Linux box đó. Bài này sẽ trình bày đến đoạn dùng vagrantfabric để cấu hình cho Linux box. Nếu có thời gian tôi sẽ viết thêm về dockertrong cùng một flow.

Vagrant có một plugin cho fabric

vagrant plugin install vagrant-fabric 

Để tự động hóa quá trình tạo máy ảo, tôi sẽ viết Vagrant file

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "precise64"

  config.vm.provision :fabric do |fabric|
    fabric.fabfile_path = "./fabfile.py"
    fabric.tasks = ["main"] # Run the task "main"
  end
end

File trên mô tả quá trình đọc file fabfile.py và chạy task main. Khi này các câu lệnh dùng với vagrant sẽ là

vagrant up
vagrant provision

Bạn sẽ build được một Linux box base trên precise64 và chạy 2 câu lệnh echo sau khi kết thúc.

Thanks for reading.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Gà đi bộ

3 bài viết.
3 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
16 11
Python là một ngôn ngữ rất linh hoạt trong xử lý số và xâu chuỗi, hồi mới học Python tôi hay dùng (Link) để luyện tập. Ở bài viết này tôi sẽ viết l...
Gà đi bộ viết hơn 3 năm trước
16 11
White
6 5
Gần đây thấy sự kiện AngelHack Việt Nam 2015 quảng cáo rầm rộ trên FB, trong đó có một đoạn nói rằng, nếu giải được bài toán do họ đặt ra thì có th...
Gà đi bộ viết hơn 3 năm trước
6 5
Bài viết liên quan
White
7 0
Hướng dẫn dùng fastlane để build, up test tự động Fastlane là 1 công cụ hỗ trợ cho iOS, Android developer trong việc release, build test cực kỳ tố...
Do Khanh Toan viết 2 năm trước
7 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
3 bài viết.
3 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!