Sửa đổi mẫu AWS CloudFormation: Đánh bóng mã của bạn

Tôi đã trình bày cách đưa giải pháp SaaS từ kế hoạch kinh doanh sang ứng dụng trực tiếp, sử dụng ví dụ về ứng dụng vé rắc rối mới, sáng bóng. Đây là những gì chúng tôi đã đề cập cho đến nay:

  • Làm cách nào để trở thành nhà cung cấp SaaS trong cuộc chiến với Amazon Web Services
  • Các bước đầu tiên để SaaS với các mẫu AWF CloudFormation
  • Sử dụng AWS CloudFormation để tạo một cụm khả dụng cao
  • Cấu tạo của mẫu AWS CloudFormation

Chọn từ bài học giải phẫu tuần trước, nơi tôi đã nêu chi tiết các phần khác nhau của mẫu AWS CloudFormation, bây giờ tôi đã sẵn sàng sửa đổi nó cho phù hợp với yêu cầu cụ thể của mình - tự động hóa việc xây dựng dịch vụ vé hỗ trợ của tôi.

Nhấn vào đây để phóng to.

Công việc xây dựng SaaS hiện đã đạt đến giai đoạn kỹ thuật nặng nề. Tôi đã viết thủ tục phức tạp đầu dưới đây (cảm ơn cơ quan phát triển Drupal microserve để kiểm tra mã của tôi).

Thử nghiệm với Amazon CloudFormation có chi phí bằng tiền thật. Chỉ làm theo các hướng dẫn này nếu bạn hài lòng để lãng phí một ít tiền mặt. Tôi giả sử bạn đã đăng ký AWS.

Tôi không mô tả tất cả các công việc xây dựng SaaS cần có - không cần phải kéo những người vô tội trong toàn bộ quá trình phát triển. Các bước này gắn bó với nhau một vài khối xây dựng để đến trạng thái làm việc cơ bản.

Nhận một bản sao của tệp mẫu CloudFusion của Amazon

Tôi cắt và thay đổi mẫu của Amazon để có kết quả nhanh chóng, thay vì thực hiện đúng cách bằng cách viết mẫu từ đầu. Nếu bạn đã từng tự hỏi "hack bẩn" là gì, thì bạn sắp làm một cái.

  1. Mở URL http://aws.amazon.com/cloudif/aws-cloudif-tem mẫu /. Trang Mẫu AWF CloudFormation Mẫu - khu vực US East (Virginia) xuất hiện.
  2. Tìm liên kết có tên Máy chủ web khả dụng cao với phiên bản cơ sở dữ liệu Multi-AZ Amazon RDS và sử dụng S3 để lưu trữ nội dung tệp. Amazon không sử dụng tên ngắn gọn và linh hoạt ở đây.
  3. Tải xuống tệp Drupal_Multi_AZ.template từ trang web của Amazon về máy trạm của bạn.
  4. Chọn một tên cho bản sao của bạn. Tôi đã gọi tôi là aws-cfn-support-template.json . Không, tên của tôi cũng không ngắn và linh hoạt.
  5. Nếu bạn sử dụng kho lưu trữ mã như Github hoặc Gitorious, hãy kiểm tra phiên bản mới của bạn.

Bây giờ bạn có bản sao cục bộ để chỉnh sửa và sao lưu từ xa (tệp gốc trên AWS).

Thay đổi phần "Tài nguyên" Mẫu AWF CloudFormation.

Đây là nơi chúng ta bắt đầu đánh mã bằng một cái vồ. Kiểm tra bài đăng cuối cùng của tôi để biết phần "Tài nguyên" nghĩa là gì - mô tả bố cục của tệp mẫu.

Những chỉnh sửa này thay đổi cấu hình và lén lút trong một vài thủ thuật của nhà phát triển Drupal - lệnh drush, mô-đun và cấu hình cài đặt.

Có phải tất cả quá nhiều mã để sao chép? Tìm mẫu đầy đủ trên github.

Thay đổi cấu hình của ElasticLoadBalancer

Bộ cân bằng tải đàn hồi chắc chắn không linh hoạt khi nói đúng và sai. Họ phải nhận được phản hồi OK đơn giản (HTTP 200). Drupal có thể đưa ra một loạt các phản hồi, không chỉ OK.

Kiểm tra một tệp thông thường như README.txt thay vì hỏi Drupal.

  1. Chỉnh sửa bản sao của tệp mẫu. Tìm những dòng này:

    "HealthCheck" : {

    "Mục tiêu": "HTTP: 80 /",

    Họ đang ở giữa chừng tập tin.
  2. Thay đổi dòng Target đó:

    "HealthCheck" : {

    "Mục tiêu": "HTTP: 80 / README.txt",

Cập nhật mã Drupal và thêm các mô-đun

Phần Tài nguyên chứa tập lệnh bash nhúng. Điều này được mô tả trong bài viết cuối cùng của tôi quá. Những chỉnh sửa này thay đổi kịch bản đó.

Thêm một số mô-đun bổ sung cho hệ thống vé hỗ trợ. Tôi muốn các tập tin này được sao chép vào mọi máy chủ. Các tệp mô-đun kết thúc bằng / var / www / html / site / all / module . Các mô-đun không đi trong nhóm S3 (khu vực S3 là / var / www / html / site / default / files ).

Phần này chứa các lệnh được sử dụng bởi quản trị viên Linux, quản trị viên Drupal và quản trị viên AWS. Bạn có biết lệnh rm là gì không? Bạn đã sử dụng drush ? Làm thế nào về tín hiệu cfn ?

1. Tìm phần cuối của tập lệnh bash. Nó trông như thế này:

 "rm /home/ec2-user/settings.php\n",  
 
 "# All is well so signal success\n",  
 "/opt/aws/bin/cfn-signal -e 0 -r \"Drupal setup complete\" '", { "Ref" : "WaitHandle" }, "'\n" 

Bạn sẽ thêm các dòng mã trong đó dòng trống đó, bên dưới lệnh rm và phía trên # bình luận.

2. Thêm các dòng này để cập nhật các tập tin ứng dụng. Cloudform cài đặt các phiên bản cũ của drupal và drush khi các máy EC2 được chế tạo. Mỗi máy ảo EC2 mới sẽ nhận được các tệp cập nhật này.

 "# Update the code on all machines. \n",  
 "cd ~ec2-user \n",  
 "~ec2-user/drush/drush self-update --choice=2 --yes \n",  
 "cd /var/www/html \n",  
 "~ec2-user/drush/drush pm-updatecode --yes \n",  

3. Cập nhật cơ sở dữ liệu để phù hợp với các tập tin. Tôi chỉ muốn một máy làm điều này để mã kiểm tra cho máy đầu tiên mà thôi. Nếu tất cả các máy thử cùng một lúc, cơ sở dữ liệu có thể sẽ bị hỏng.

 "# Update the database from the first machine only. \n",  
 "if  `hostname` = $first \n",  
 "then\n",  
 " ~ec2-user/drush/drush updatedb --yes \n",  
 "fi\n",  

4. Thêm các tập tin mô-đun tôi cần cho công việc của tôi.

 "# Add modules. Many more are automatically added to this list. \n",  
 "# Files are copied to all machines. \n",  
 "~ec2-user/drush/drush pm-download acl commerce content_access entity rules support --yes \n",  

5. Kích hoạt các mô-đun bằng cách cập nhật cơ sở dữ liệu.

 "# Enable modules and rebuild the permissions table. The database holds this. \n",  
 "if  `hostname` = $first \n",  
 "then\n",  
 " ~ec2-user/drush/drush pm-enable commerce content_access support --yes \n",  
 " ~ec2-user/drush/drush php-eval 'node_access_rebuild();' \n",  
 "fi\n",  

6. Hãy chắc chắn rằng Drupal có thể đọc các tập tin của riêng mình.

 "# Fix ownership and permissions. \n",  
 "chown -R root:apache /var/www/html \n",  
 "chmod 640 /var/www/html/sites/default/settings.php \n",  

7. Lưu công việc của bạn.

Hình thành đám mây mới của bạn

Chạy lại các bước để chạy ví dụ AWS của cụm Drupal. Bài viết trước đây của tôi bao gồm các thủ tục để làm theo và các giá trị bạn cần.

Xây dựng trang web mới của bạn.

    1. Tìm mẫu mới của bạn.
    2. Thực hiện theo quy trình để khởi chạy một đám mây, nhưng không sử dụng mẫu mặc định của Amazon.
    3. Tải lên mẫu mới của bạn bằng tùy chọn Tải lên tệp mẫu .
    4. Điền vào các mẫu đơn.
    5. Tạo ngăn xếp CloudFormation. Khi tôi chạy nó mất 20 phút để hoàn thành.
    6. Làm mới danh sách Sự kiện để xem tiến độ.

      Nhấn vào đây để phóng to.
      Kiểm tra trang web mới của bạn.
        1. Mở URL của trang web hỗ trợ mới của bạn. Của tôi là http://supportti-elasticl-qbifcetbaa16-1886498031.eu-west-1.elb.amazonaws.com/admin/support. Một trang đăng nhập xuất hiện.
        2. Đăng nhập bằng SiteAdmin và SitePassword mới của bạn. Một trang hỗ trợ xuất hiện.
          Dọn dẹp.

            Phá hủy ngăn xếp CloudFormation mới của bạn khi bạn hoàn thành.

              Một bài kiểm tra hiểu

              Crikey, nó giống như trở lại trường học.

              Một máy ảo Amazon mới luôn luôn lỗi thời. Các bản vá và nâng cấp có sẵn cho một vài gói của nó. Một điều mà mẫu này không làm là cập nhật các gói trên mỗi máy ảo.

              Bạn sẽ đặt lệnh cập nhật yum ở đâu?

              © Copyright 2020 | mobilegn.com