Hướng dẫn cài đặt Snipe-IT trên CentOS để quản lý tài sản IT

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.

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.

– 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 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 .

snipe-it

– Cấu hình các thông tin cần thiết trên giao diện Setup Snipe-IT.

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.

giao diện quản lý user - snipe-it
Giao diện quản lý user

Ở 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.

snipe it - tạo group
Hướng dẫn các bạn vào tạo Group

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

snipe it language
Hướng dẫn các bạn thay đổi ngôn ngữ hiển thị

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ệ.

snipe it tien te

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.

snipe it email alert 1

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.

snipe it alert email 2
Phần tùy chỉnh của email cảnh báo

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) .

google authenticator - snipe it
Hướng dẫn các bạn cấu hình xác thực 2 bước

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 …

snipe it google authenticator - 2
Giao diện chỉnh sủa xác minh 2 bước

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.

snipe it qr code
Giao diện mã QR để smartphone quét và đưa ra mã 6 số

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.

Quách Chí Cường

Previous articleHướng dẫn lấy IML Log và AHS Log trên server HP
Next article[Linux] Hướng dẫn dùng lệnh LOCATE tìm file cực nhanh trên Linux
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !