Nếu bạn là một IT Helpdesk hoặc đang quản lý một hệ thống IT Doanh nghiệp vừa và nhỏ thì sẽ có lúc bạn đau đầu về việc quản lý tài sản IT (IT Asset). Vậy liệu có một mã nguồn hay phần mềm mã nguồn mở nào có thể tiết kiệm chi phí để thực hiện quản lý các tài sản IT trong doanh nghiệp hay không ?! Thật may cho bạn vì SNIPE-IT đã xuất hiện và cứu cánh cho nhu cầu này của bạn. Bài viết này sẽ giới thiệu về Snipe-IT và cách cài đặt Snipe-IT trên Linux như CentOS.
Contents
1. Tổng quan về Tài Sản IT
Tài sản IT công ty gồm gì? Tài sản công nghệ thông tin (IT Asset) là bao gồm cả phần mềm mà các máy tính nhân viên, máy chủ đang sử dụng (license window, phần mềm bản quyền…) và phần cứng dùng để phục vụ công việc, hệ thống (laptop, màn hình, bàn phím, máy in, thiết bị …) trong môi trường công nghệ thông tin của doanh nghiệp.
Việc bạn có thể theo dõi, quản lý được các tài sản IT này hay không quyết định không nhỏ đến sự thành công về mặt tài chính và hoạt động của doanh nghiệp. Vì ngày nay tài sản công nghệ thông tin là thành phần không thể thiếu của hệ thống và cơ sở hạ tầng của doanh nghiệp.
Việc quản lý tài sản IT khó khăn ra sao?
Giả sử cần thống kê ngay và luôn có bao nhiêu máy tính và license cài đặt và giao cho nhân viên thì bạn làm sao cho nhanh? Sẽ không nhanh đâu vì không phải đơn giản cho mỗi lần đi thống kê tài sản của công ty, doanh nghiệp. Đó là quy mô nhỏ thôi, ví dụ công ty đó có vài ba chi nhánh là… ôi thôi.
2. Tổng quan Snipe-IT
Snipe-IT là gì? Snipe-IT là phần mềm mã nguồn mở được dùng để quản lý tài sản công nghệ thông tin. Với phần mềm này sẽ cho phép người quản trị quản lý được laptop được bàn giao cho ai, bao nhiêu phần mềm bản quyền được kích hoạt và còn bao lâu hết hạn,…
Snipe–IT được xây dựng trên mã nguồn PHP Framework Laravel, theo sát cấu trúc lập trình MVC. Lợi ích mà Snipe–IT mang lại:
– Giao diện trực quan, dễ quản lý.
– Thể hiện tính chuyên nghiệp của một công ty công nghệ.
– Đưa ra thống kê, kiểm kê tài sản, báo cáo nhanh và chính xác.
Trang chủ : https://snipeitapp.com
Source code : https://github.com/snipe/snipe-it
Yêu cầu cấu hình server để cài Snipe –IT:
– PHP >= 5.6.4
– PHP extension:
• OpenSSL PHP Extension
• PDO PHP Extension
• Mbstring PHP Extension
• Tokenizer PHP Extension
• cURL PHP Extension
• MySQL PHP Extension
• PHPZIP extension
• Fileinfo
– CSDL MySQL hoặc MariaDB
– GD Library (>=2.0) hoặc Imagick PHP extension (>=6.3.8)
– Git
3. Hướng dẫn cài đặt Snipe-IT trên CentOS
Bước 1: Cài đặt Web Server LAMP
Bạn có thể google cách cài đặt hệ thống Web Server LAMP hoặc LEMP để làm dịch vụ web phía backend cho VPS CentOS của bạn. Ở bài viết này mình sẽ dùng hệ thống LAMP với Apache là Web Server.
Lúc các PHP nhớ cài các module php thoả yêu cầu Snipe-IT như : xml, mbstring, mcrypt, gd, zip, curl, bcmath,…
Bước 2: cài đặt mã nguồn Snipe-IT
– Do Snipe-IT được phát triển trên mã nguồn Laravel PHP Framework, nên cần chương trình Composer quản lý cài đặt các thư viện Laravel.
– Cài đặt chương trình Composer – PHP Manager. Login vào VPS (server) chạy lệnh sau để cài đặt chương trình composer.
# curl -sS https://getcomposer.org/installer | php # mv composer.phar /usr/local/bin/composer
– Cài đặt mã nguồn Snipe-IT Asset Management, tại thư mục document root dành cho tên miền vhost Apache của bạn. Ví dụ, document root của mình ở : /home/cuongqc/public_html/
# yum install git unzip -y # cd /home/cuongqc/public_html/ # git clone https://github.com/snipe/snipe-it.git
– Bạn cần tạo thông tin database để chứa CSDL của Snipe-IT. Bạn có thể sử dụng các câu lệnh Query SQL trên terminal trực tiếp như dưới.
# mysql -u root -p mysql> CREATE DATABASE admin_snipe; mysql> GRANT ALL PRIVILEGES ON admin_snipe.* TO 'admin_snipe'@'127.0.0.1' IDENTIFIED BY '123123123'; mysql> FLUSH PRIVILEGES;
– Cấu hình lại các thông tin để source code Snipe-IT dùng để kết nối database và mail SMTP. Các thông tin này sẽ nằm trong file ‘.env‘ .
# cd /home/cuongqc/public_html/ # mv snipe-it/* . # mv snipe-it/.* . # rmdir ./snipe-it # mv .env.example .env # vi .env
– Sửa lại một số nội dung sau trong file ‘.env ‘ .
DB_DATABASE='admin_snipe' DB_USERNAME='admin_snipe' DB_PASSWORD='123123123 MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=your_email@gmail.com MAIL_PASSWORD=your_password MAIL_ENCRYPTION=tls MAIL_FROM_ADDR=your_email@gmail.com MAIL_FROM_NAME='Snipe-IT' MAIL_REPLYTO_ADDR=your_email@gmail.com MAIL_REPLYTO_NAME='Snipe-IT'
Ở đây mình sử dụng SMTP của gmail để gửi mail đi, mail này sẽ đảm nhiệm các chức năng như gửi mail welcome khi tạo user, mail reset password, mail cảnh báo thời gian sử dụng tài sản…
Để cấu hình gmail gửi đi được bạn cần tinh chỉnh vài cấu hình trong tài khoản gmail mà bạn muốn thiết lập để gửi mail này.
- Đăng nhập tài khoản gmail.
- Đi đến https://myaccount.google.com/lesssecureapps và bật “less secure“
- Đi đến https://accounts.google.com/b/0/DisplayUnlockCaptcha và click “continue”
– Phân quyền cho các file và thư mục cần thiết. Đảm bảo user chạy dịch vụ web có thể truy cập các thư mục : storage, public/uploads và bootstrap/cache .
# chmod -R 755 storage # chmod -R 755 public/uploads # chmod -R 755 bootstrap/cache
– Sử dụng chương trình composer để cài đặt các gói thư viện cần thiết cho PHP. Composer sẽ đọc danh sách các thư viện trong file ‘composer.json‘ ở source Snipe-IT .
# composer install --no-dev --prefer-source
– Tạo một application key cho việc cài đặt. Laravel sẽ ghi giá trị key khởi tạo được vào dòng APP_KEY trong file .env . Snipe-IT sẽ sử dụng key này cho hoạt động mã hoá và giải mã dữ liệu như session token.
# php artisan key:generate ************************************** * Application In Production! * ************************************** Do you really wish to run this command? (yes/no) [no]: > yes Application key [base64:B/7/1vP0dboWp+uYbLLoxWg2LN5DQQt4DdOjiC1OGMw=] set successfully.
– Sửa lại document root của vhost tên miền mà bạn đang host mã nguồn Snipe-IT. Cái này mình chỉnh trên file cấu hình Apache theo tên miền của mình, các bạn có thể linh động tự xử lý trên hệ thống LAMP Server. Giờ ta cần thay đổi thư mục chính để load web là thư mục con “./public/” nằm trong source code hiện tại.
# vi /etc/httpd/conf.d/web.conf <VirtualHost x.x.x.x:8080 127.0.0.1:8080 > ServerName www.snipeit.cuongquachlab.com ServerAlias www.snipeit.cuongquachlab.com snipeit.cuongquachlab.com ServerAdmin webmaster@snipeit.cuongquachlab.com DocumentRoot /home/cuongqc/public_html/public/ UseCanonicalName OFF <IfModule !mod_ruid2.c> SuexecUserGroup cuongquach cuongquach </IfModule> <IfModule mod_ruid2.c> RMode config RUidGid cuongquach cuongquach #RGroups apache access RGroups @none </IfModule> CustomLog /var/log/httpd/domains/snipeit.cuongquachlab.com.bytes bytes CustomLog /var/log/httpd/domains/snipeit.cuongquachlab.com.log combined ErrorLog /var/log/httpd/domains/snipeit.cuongquachlab.com.error.log <Directory /home/cuongqc/public_html/public/> AllowOverride AuthConfig FileInfo Indexes Limit Options=Indexes,IncludesNOEXEC,MultiViews,SymLinksIfOwnerMatch,FollowSymLinks,None Options -ExecCGI -Includes +IncludesNOEXEC php_admin_flag engine ON php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f cuongquach@snipeit.cuongquachlab.com' php_admin_value mail.log /home/cuongquach/.php/php-mail.log php_admin_value open_basedir /home/cuongquach/:/tmp:/var/tmp:/usr/local/lib/php/:/usr/local/php56/lib/php/ </Directory> </VirtualHost>
– Lưu lại và khởi động lại web service Apache.
# service httpd restart
– Bạn truy cập tên miền mà bạn đang host mã nguồn Snipe-IT . Ví dụ : http://snipeit.cuongquachlab.com .
– Cấu hình các thông tin cần thiết trên giao diện Setup Snipe-IT.
– Lúc này bạn sẽ được đăng nhập vào thẳng Snipe-IT Dashboard luôn.
4. Hướng dẫn sử dụng Snipe-IT cơ bản
4.1. Tạo user và phân quyền
Để quản lý user chúng ta vào tab People, để tạo user mình bấm tiếp vào Create New.

Ở mục Permisson bạn sẽ thấy user tạo ra sẽ được sở hữu một trong 3 quyền:
- SupperAdmin: Có thể chỉnh sửa các cài đặt quản trị, tạo nhóm, vị trí, gán trạng thái tài sản, … và không bị ràng buộc bởi cấu hình “Full company support”.
- Admin :Không thể truy cập vào admin setting và bị ràng buộc bởi cấu hình “Full company support”. Còn lại tất các chức năng như thêm, sửa, xóa trên các khía cạnh khác đều sử dụng được.
- Khác: Không thể truy cập vào admin setting. Các quyền khác được cấp dựa trên group hoặc được cấp riêng cho cá nhân ấy sở hữu.
Ở quyền là “Khác (other)” chẳng hạn như thêm hoặc xem user, quyền tạo, sửa xóa tài sản … đều được giả định ở quyền admin/superadmin mặc dù bạn đang không có quyền như vậy. Nói dễ hiểu là ví dụ bạn gán quyền xóa tài sản cho user thì nó thực hiện quyền xóa ở cấp độ admin/superadmin (mượn quyền để xóa ấy mà).
Ngoài ra bạn cũng có thể sử dụng quyền của Group để quản lý các user thuộc chung vai trò cụ thể nào đó. Ví dụ như user của phòng kỹ thuật thì đưa chung vào nhóm kỹ thuật. Và tất nhiên quyền của group ra sao thì user được kế thừa như vậy.

4.2. Lựa chọn ngôn ngữ hiển thị
Cộng đồng mạng luôn là điểm tuyệt nhất của mã nguồn mở và Snipe–IT cũng không ngoại lệ. Bằng sự hỗ trợ của cộng đồng và nhóm tình nguyên viên vì Snipe–IT đưuọc dịch ra nhiều ngôn ngữ khác nhau, bạn có thể thay đổi ngôn ngữ hiển thị bằng cách vào : Admin >> Setting >> Localization Language, date display

Ngoài ra bạn cũng có thể thay đổi được cách hiển thị thời gian, đơn vị tiền gán cho tài sản và thay đổi được cả ngôn ngữ tiếng việt. Ngoài thay đổi ngôn ngữ, bạn còn có thể thay đổi cách hiển thị thời gian và đơn vị tiền tệ.
4.3. Email alert
Khi bạn là người quản lý tài sản công ty và bạn cần “ai đó” nhắc mình rằng tài sản bàn giao cho nhân viên gần hết hạn hay license phần mềm nào đó gần hết hạn thì chức năng này là cứu cánh của bạn.
Bằng cách vào: Admin >> Setting >> Notifications (Email Alerts) và bạn có thể thiết lập tại đây.
Lưu ý thêm là bạn có thể thêm vào một hay nhiều địa chỉ mail để nhận thông báo hết hạn, miễn là ngăn cách bởi dấu “,” là được.

1.4. Google Authenticator
Kể từ phiên bản 3.6, Snipe–IT hỗ trợ xác thực 2 bước của google. Để bật tính năng này bạn vào: Admin >> Setting >> Security (Two-factor, Password Restrictions) .

Có 3 lựa chọn sẵn có như sau:
- Disabled: Chức năng 2 bước sẽ không được thực hiện với bất kỳ user nào.
- Selective: User có thể lựa chọn bật chức năng 2 bước hay không trong profile của họ nếu quá trình tạo user hoặc group có bật tính năng này.
- Required: Tất cả user đều phải bật tính năng 2 bước này.
Ngoài ra còn một số rằng buộc về quy định đặt password như: độ dài, yêu cầu phải có ký tự đặc biệt, số, chữ hoa, thường …

Cách hoạt động của chức năng 2 bước ngày tương tự như xác thực của google mail nếu bạn từng sử dụng. Đầu tiên khi user đăng nhập, một mã QR code xuất hiện, bạn phải sử dụng app google authenticator trên smartphone của mình để quét mã vạch, mã 6 số xuất hiện và bạn điền số vào trang đăng nhập để login vào.

5. Tổng kết
Như vậy là mình vừa trình bày xong ứng dụng quản lý tài sản công nghệ thông tin với Snipe–IT Asset Management rồi, hi vọng bài viết sẽ hữu ích cho các bạn, đặc biệt là những bạn được phân công nhiệm vụ quản lý khối tài sản “khổng lồ” mà … không phải của mình này.