ใช้ Chef-solo เพื่อกำหนดค่าแอป Django บน Ubuntu

มีหลายวิธีในการตั้งค่าและกำหนดค่ากล่องโดยอัตโนมัติ ไม่ว่าจะด้วยเหตุผลใดก็ตามหากระบบทั้งหมดของเรา ณ จุดนี้ประกอบด้วยเพียงกล่องเดียวการตั้งค่าโครงสร้างพื้นฐาน SCM (การจัดการการกำหนดค่าซอฟต์แวร์) เต็มรูปแบบนั้นเกินความจำเป็น เชลล์สคริปต์เป็นตัวเลือกหนึ่ง แต่เราสามารถใช้ SCM รุ่นที่แยกส่วนซึ่งมีอยู่ในเครื่องมือบางส่วน Chef เป็นหนึ่งในตัวเลือกยอดนิยมและ "chef-solo" เป็นโหมดการกำหนดค่าแบบสแตนด์อโลนของ Chef ซึ่งเราไม่ต้องการโหนดเพิ่มเติมเพื่อทำหน้าที่เป็น "chef-server" สิ่งที่ต้องการคือ URL หรือเส้นทางไปยังแพ็คเกจ tarball ที่มีตำราพ่อครัว เมื่อเทียบกับเชลล์สคริปท์วิธีการนี้เป็นวิธีที่เปิดเผยและมีประสิทธิภาพมากกว่าและยังเป็นการแนะนำที่ดีในการเริ่มต้นกับกระบวนการ SCM หรือ IaC (โครงสร้างพื้นฐานเป็นรหัส)

ข้อดีอื่น ๆ ของการใช้เชฟโซโล:

  • Composability: ใช้ตำราชุมชนจากพ่อครัวซูเปอร์มาร์เก็ตหรือสถานที่อื่น ๆ
  • ฟรีและโอเพ่นซอร์ส; ได้รับอนุญาตภายใต้สิทธิ์การใช้งาน Apache 2.0 ที่อนุญาต
  • เข้าถึงส่วนที่เหลือของระบบนิเวศของเชฟ (InSpec, ChefSpec, Cookstyle, Foodcritic, Chef-shell และอื่น ๆ )
  • ตำราและสูตรอาหารสามารถนำมาปรับใช้กับโหมดไคลเอนต์ / เซิร์ฟเวอร์

และข้อเสียบางอย่าง:

  • ตำราอาหารชุมชนบางรายการในซุปเปอร์มาร์เก็ตเชฟมีล้าสมัยหักและไม่ได้รับการบำรุงรักษา
  • chef-solo ไม่สามารถแก้ไขการพึ่งพาตนเองได้

'สูตรอาหาร' ภายในของพ่อครัว 'ตำราอาหาร' มี DSL ที่ใช้ทับทิมซึ่งอธิบาย 'ทรัพยากร' ให้อยู่ในสถานะเฉพาะบนโหนด มาเริ่มขั้นตอนการทำความคุ้นเคยกับแนวคิดเชฟสองสามข้อที่ใช้กับเชฟเดี่ยว เป้าหมายของเราคือการตั้งค่าโหนดอูบุนตูที่ใช้งานแอพพลิเคชั่น Python / Django ผ่าน Gunicorn และ NGINX

หมายเหตุ: เราไม่จำเป็นต้องติดตั้ง ChefDK ใน "Workstation" (เครื่องของเรา) ถึงแม้ว่าเราจะสามารถใช้คำสั่ง 'chef generate' เพื่อเริ่มต้นด้วยโครงสร้างไดเรกทอรีสำหรับการสร้างตำราอาหารและอื่น ๆ ในบทความนี้เราจะสมมติว่า ChefDK ได้รับการติดตั้งบนเวิร์กสเตชันของเรา คำสั่งถูกเรียกใช้โดยใช้รุ่น 4.7.26-1 ของ ChefDK


(ทุกอย่างจากจุดนี้เป็นต้นไปเว้นแต่จะระบุไว้เป็นอย่างอื่นให้เรียกใช้บนเครื่องของเราหรือที่เรียกว่า 'Chef Workstation')

การสร้างตำราอาหาร

ตำราอาหารในพ่อครัวเป็นหน่วยที่นำกลับมาใช้ใหม่ได้ซึ่งมีทุกอย่างที่จำเป็นสำหรับการสนับสนุนสถานการณ์การกำหนดค่า ตำราอาหารอาจมี 'สูตร' และ 'สูตร' หลายอย่างซึ่งส่วนใหญ่ประกอบด้วยรูปแบบทรัพยากร default.rbเป็นสูตรเริ่มต้นที่จะทำงานเมื่อตำรามีการอ้างอิงในการทำงานรายการ สูตรอาหารที่แตกต่างกันสามารถแยกความกังวลได้ สำหรับการกวดวิชานี้ default.rbแต่เราจะเพิ่มการประกาศทรัพยากรทั้งหมดในไฟล์สูตรหนึ่งหลักซึ่งเป็น

สร้างโฟลเดอร์ชื่อ "my-chef-project" และสร้างโฟลเดอร์ภายในชื่อ "cookbooks" จากการ./my-chef-project/cookbooks/เรียกใช้:

$ chef generate cookbook my-cookbook

โครงสร้างไดเรกทอรีของเราจะมีลักษณะดังนี้:

.
└── my-chef-project
└── cookbooks
└── my-cookbook
├── CHANGELOG.md
├── LICENSE
├── Policyfile.rb
├── README.md
├── chefignore
├── kitchen.yml
├── metadata.rb
├── recipes
│ └── default.rb
├── spec
│ ├── spec_helper.rb
│ └── unit
│ └── recipes
│ └── default_spec.rb
└── test
└── integration
└── default
└── default_test.rb

การเพิ่มแพ็คเกจ

ขั้นตอนแรกในการตั้งค่าโหนดของเราคือการระบุแพ็คเกจที่แอพของเราต้องการ โหนดของเราถูกเลือกให้เป็น Ubuntu ดังนั้นเราจึงสามารถพึ่งพาตัวจัดการแพคเกจ APT เพื่อรวบรวมการอ้างอิง การติดตั้งแพ็กเกจที่จัดไว้ให้โดยการกระจายระบบปฏิบัติการนั้นเป็นเรื่องง่าย:

apt_update
package 'python3'
package 'python3-pip'
package 'nginx'
package 'pkg-config'
package 'libcairo2-dev'
package 'libjpeg-dev'
package 'libgif-dev'
package 'libgirepository1.0-dev'

สิ่งเหล่านี้อธิบายได้ด้วยตนเอง บรรทัดแรกจะอัพเดตที่เก็บ apt และบรรทัดต่อไปนี้จะติดตั้งแพ็กเกจเหล่านั้น

หมายเหตุ: แพคเกจต่อไปนี้ 'nginx' จำเป็นสำ��รับการรวบรวมการพึ่งพาของไพ ธ อนผ่าน pip สิ่งเหล่านี้อาจแตกต่างกันไปขึ้นอยู่กับการอ้างอิงโครงการ python / django ของrequirements.txtคุณ คุณสามารถใช้วิธีการทดลองและข้อผิดพลาดเพื่อกำหนดแพ็คเกจเหล่านี้ที่คุณต้องรวมไว้ในตำราอาหารของคุณ หากต้องการทำเช่นนั้นให้ดำเนินการด้วยตนเองsudo pip install -r requirements.txt(หมายเหตุ: นี่เป็นการติดตั้งแพคเกจทั้งระบบ!) บนเครื่องอูบุนตูสดใหม่เพื่อดูว่ามันทำงานได้สำเร็จหรือไม่ ถ้าไม่ stderr ควรให้คำแนะนำคุณเกี่ยวกับแพ็คเกจที่หายไป

การสร้างผู้ใช้ linux

เมื่อเราเพิ่มแพ็คเกจที่ต้องการเสร็จแล้วเราต้องสร้างผู้ใช้ Linux ที่ไม่มีสิทธิพิเศษที่จะเป็นเจ้าของซอร์สโค้ดของแอปพลิเคชัน

user 'bob' do
  uid 1212
  gid 'users'
  home '/home/bob'
  shell '/bin/bash'
  password '$1$alilbito$C83FsODuq0A1pUMeFPeR10'
end

โปรดทราบว่ารหัสผ่านเป็นรูปแบบแฮชเงาที่ใช้ใน Linux สามารถรับได้โดยใช้ OpenSSL:

$ openssl passwd -1 -salt alilbitof mypassword

รวมถึงแหล่งที่มาของแอพ

ตอนนี้ให้รวมซอร์สโค้ดแอปพลิเคชัน Django ไว้ในตำราของเรา วางซอร์สโค้ดภายใน./my-chef-project/cookbooks/my-cookbook/files/default/myapp/ สร้าง./my-chef-project/cookbooks/my-cookbook/files/defaultไดเรกทอรีหากไม่มีอยู่

คำแนะนำในการคัดลอกไฟล์เหล่านี้ไปยังตำแหน่งระยะไกลบนโหนดของเรามีการอธิบายโดยใช้ทรัพยากรremote_directory :

remote_directory '/home/bob/myapp' do
  source 'myapp' # This is the name of the folder containing our source code that we kept in ./my-cookbook/files/default/
  owner 'bob'
  group 'users'
  mode '0755'
  action :create
end

การดึงในการอ้างอิงหลาม

ในการติดตั้งแพ็กเกจหลามในrequirements.txtเราสามารถใช้ทรัพยากรการดำเนินการเพื่อเรียกใช้คำสั่งโดยพลการ ในกรณีนี้เราต้องดำเนินการคำสั่ง pip install มากกว่า:

execute 'install python dependencies' do
  command 'pip3 install -r requirements.txt'
  cwd '/home/bob/myapp'
end

หมายเหตุ: โปรดจำไว้ว่าสิ่งนี้จะถูกเรียกใช้งานในฐานะผู้ใช้รูทและไลบรารีของหลามจะถูกติดตั้งทั่วทั้งระบบ หากโหนดของเราถูกกำหนดให้เรียกใช้แอพไพ ธ อนเดียวนี้โดยเฉพาะแสดงว่ามันไม่เป็นปัญหามากนัก แม้จะมีตัวเลือกที่ดีกว่าในการรักษาสิ่งที่สะอาดและมีสติคือการค้นหาและใช้ตำราอาหารชุมชนที่จัดการการติดตั้งหลามหรือ 'virtualenvs' (หรืออย่างน้อยที่สุดให้เขียนชุดของบล็อกดำเนินการเพื่อทำซ้ำสิ่งนี้) การใช้ virtualenvs ใน python ช่วยให้มั่นใจได้ว่าเครื่องมือระบบที่ใช้ python หรือโครงการ python อื่น ๆ จะไม่ได้รับผลกระทบ

การตั้งค่า Gunicorn & NGINX

ตอนนี้ได้เวลาเตรียม Gunicorn WSGI HTTP Server ด้วย NGINX เป็น reverse proxy ของเรา Nginx ยังใช้เพื่อจัดการสินทรัพย์คงที่ทั้งหมดจาก Django

ในการเพิ่มบริการ Gunicorn เป็นบริการบน Ubuntu สามารถใช้ Systemd ได้ systemd_unitทรัพยากรรวมอยู่ในเชฟตั้งแต่รุ่น 12.11

systemd_unit 'gunicorn.service' do
  content({
  Unit: {
    Description: 'Django on Gunicorn',
    After: 'network.target',
  },
  Service: {
    ExecStart: '/usr/local/bin/gunicorn --workers 3 --bind localhost:8080 myapp.wsgi:application',
    User: 'bob',
    Group: 'www-data',
    WorkingDirectory: '/home/bob/myapp'
    Restart: 'always',
  },
  Install: {
    WantedBy: 'multi-user.target',
  }
  })
  action [:create, :enable, :start]
end

ตอนนี้เราต้องรวมการกำหนดค่าพร็อกซี NGINX มาตรฐานกับเซิร์ฟเวอร์ Gunicorn ดังที่แสดงด้านล่าง ./my-cookbook/templates/nginx.conf.erbข้อมูลโค้ดนี้สามารถไปลง สร้างไดเรกทอรีแม่แบบหากไม่มีอยู่

หมายเหตุ: เทมเพลตของ Chef รองรับไฟล์ทับทิมฝังตัวที่สามารถมีตัวแปรนิพจน์และคำสั่งทับทิมได้ แม้ว่าไฟล์นี้จะมีนามสกุล 'erb' แต่เราไม่ได้ใช้คำสั่ง ruby ​​หรือการแสดงออกใด ๆ นอกจากนี้เพื่อความเรียบง่ายเรามีการกำหนดค่า HTTPS nginx ที่ไม่ใช่เท่านั้น (การแจ้งเตือนอย่างอ่อนโยนโปรดอย่าทำสิ่งนี้ในการผลิต!)

server {
  listen 80;
  server_name http://example.com/;

  location = /favicon.ico { access_log off; log_not_found off; }
  location /static/ {
    root /home/bob/myapp/myapp/static;
  }

  location / {
  include proxy_params;
    proxy_pass http://localhost:8080/;
  }
}

หมายเหตุ: นอกจากนี้ยังมีทางเลือกและการกำหนดค่าที่ดีกว่าตัวอย่างเช่นเซิร์ฟเวอร์ Gunicorn ถูกผูกไว้กับซ็อกเก็ตโดเมน unix แทนการเชื่อมต่อ TCP loopback มันคุ้มค่าที่จะสำรวจด้วยเหตุผลด้านประสิทธิภาพ

หากต้องการคัดลอกการกำหนดค่านี้ไปยังโฟลเดอร์ที่เปิดใช้งานไซต์บนโหนดให้ใช้ทรัพยากรแม่แบบจาก Chef

template '/etc/nginx/sites-available/example.com.conf' do
  source 'nginx.conf.erb'
  owner 'root'
  group 'root'
  mode '0744'
end

การเปิดใช้งาน configs บน nginx นั้นทำได้โดยการสร้าง symlink ที่ชี้ไปที่ config ที่sites-availableในsites-enabledโฟลเดอร์ของ nginx Symlink สามารถประกาศได้ใน cookbooks พ่อครัวด้วยทรัพยากรลิงค์ดังแสดงด้านล่าง:

link '/etc/nginx/sites-enabled/example.com.conf' do
  to '/etc/nginx/sites-available/example.com.conf'
end

และเพื่อลบ symlink การกำหนดค่าเริ่มต้น:

link '/etc/nginx/sites-enabled/default' do
  action :delete
end

เริ่ม NGINX

และสุดท้าย, เพื่อเพิ่มการให้บริการ nginx:

service 'nginx' do
  action :enable
  action :start
end

Runlists

Run-list in chef เป็นรายการสั่งของบทบาทหรือสูตรอาหารในตำราอาหารที่จะถูกดำเนินการตามลำดับบนโหนด เรามีตำราอาหารหนึ่งเล่ม "my-cookbook" และสูตร "ค่าเริ่มต้น" ไว้ในนั้นที่เราต้องดำเนินการในกล่อง Ubuntu ดังนั้น runlist.json ในไดเรกทอรีโครงการของเรา ( ./my-chef-project/runlist.json) ควรมีลักษณะดังนี้:

{
  "run_list": [
    "recipe[my-cookbook::default]"
  ]
}

ขั้นตอนสุดท้าย

ตำราอาหารสำหรับเชฟโซโลของเราพร้อมให้บริการแล้ว ได้เวลาเตรียมเครื่อง Ubuntu 18.04 และติดตั้ง ChefDK ลงไป:

$ ssh [email protected] 'apt-get update && yes | apt-get install curl && curl https://packages.chef.io/files/current/chefdk/4.7.45/ubuntu/18.04/chefdk_4.7.45-1_amd64.deb -o chefdk.deb && yes | dpkg -i chefdk.deb && rm chefdk.deb'

จะกลับไปเวิร์กสเตชันเชฟของเราทั้งหมดที่เราต้องทำคือการวางตำราโฟลเดอร์ภายใน tarball โอนที่ tarball พร้อมกับrunlist.jsonโหนดระยะไกลที่เราจัดเตรียมไว้ข้างต้นและเรียกใช้คำสั่งพ่อครัวเดี่ยว:

(คำสั่งด้านล่างจะต้องทำงานภายในโหนดหรือ 'พ่อครัวลูกค้า' และไม่ใช่เชฟเวิร์กสเตชัน)

$ chef-solo --recipe-url $(pwd)/chef-solo.tar.gz -j $(pwd)/runlist.json --chef-license=accept

หรือนี่คือหนึ่งซับ (ที่จะเรียกใช้จาก./my-chef-project/CWD บน Chef Workstation):

tar zvcf chef-solo.tar.gz ./cookbooks &&\
scp chef-solo.tar.gz runlist.json [email protected]:~/ &&\
ssh [email protected] 'chef-solo --recipe-url $(pwd)/chef-solo.tar.gz -j $(pwd)/runlist.json --chef-license=accept'

แค่นั้นแหละ! ดูผลลัพธ์มาตรฐานที่เต็มไปด้วยกิจกรรมของเชฟที่พยายามรวมโหนดของคุณเข้ากับสิ่งที่คุณได้ระบุไว้ในตำราอาหาร Chef-solo จะติดตั้งอัญมณีทั้งหมดที่จำเป็นสำหรับตำราอาหารทั้งหมด หากคำสั่งพ่อครัวเดี่ยวประสบความสำเร็จเราจะมีแอปพลิเคชั่น Django ที่ทำงานอยู่ด้านหลัง nginx บนกล่อง Ubuntu นำทางไปยังโดเมน / IP เพื่อทดสอบ

หมายเหตุ: โปรดจำไว้ว่าใน Django คุณอาจจำเป็นต้องตั้งค่าโดเมนนี้ / IP ในรายการในALLOWED_HOSTSsettings.py

ตอบสนองต่อการเปลี่ยนแปลง

เมื่อใดก็ตามที่เราทำการเปลี่ยนแปลงในเนื้อหาของไดเรกทอรีโครงการของเรา (สูตรแม่แบบหรือซอร์สโค้ดของแอปพลิเคชัน ฯลฯ ) เพียงแค่เรียกใช้ซับหนึ่งด้านบนจากไดเรกทอรีโครงการ

เคล็ดลับ: หากตำราอาหารเป็นรุ่นที่ควบคุมด้วย git (เท่าที่ควร) คำแนะนำที่ดีอย่างหนึ่งก็คือให้ตั้ง git hooks เพื่อเรียกใช้หนึ่งซับในนี้

โฮสต์ tarball (ไม่จำเป็น)

หากคุณมองอย่างใกล้ชิดกับคำสั่ง chef-solo ครั้งสุดท้ายให้สังเกตว่า--recipe-urlหมายถึงการใช้ URL ซึ่งหมายความว่าคุณสามารถมีเวิร์กโฟลว์ที่ CI จะสร้าง tarball พ่อครัวเดี่ยวอัปโหลดที่ใดที่หนึ่งและกำหนดค่าโหนดของคุณเพื่อดึงออกมาเป็นระยะ

เคล็ดลับ: ใช้ curl เพื่อดึง tarball ที่เปลี่ยนเป็นระยะ ๆ เป็น cronjob curl -z $fileจะให้เกียรติหัวและจะดาวน์โหลดเฉพาะลูกน้ำมันดินถ้าไฟล์จากระยะไกลได้รับการเปลี่ยนแปลงตั้งแต่การประทับเวลาในท้องถิ่นที่มีอยู่If-Modified-Since$file



Leave a Comment

เริ่มต้นด้วย SaltStack บน Ubuntu 17.04

เริ่มต้นด้วย SaltStack บน Ubuntu 17.04

SaltStack เป็นโปรแกรมจัดการการกำหนดค่าที่ใช้ python ซึ่งได้รับการปรับให้เหมาะสมสำหรับการทำงานอัตโนมัติของไฟล์การกำหนดค่าการปรับใช้และสิ่งอื่น ๆ

วิธีการติดตั้ง Foreman บน Ubuntu 16.04 LTS

วิธีการติดตั้ง Foreman บน Ubuntu 16.04 LTS

ใช้ระบบที่แตกต่างกันอย่างไร โฟร์แมนเป็นเครื่องมือโอเพนซอร์ซฟรีและโอเพนซอร์สซึ่งช่วยคุณในการกำหนดค่าและจัดการเซิร์ฟเวอร์จริงและเซิร์ฟเวอร์เสมือน FOREMA

วิธีการติดตั้ง Jenkins บน CentOS 7

วิธีการติดตั้ง Jenkins บน CentOS 7

Jenkins เป็นเครื่องมือโอเพ่นซอร์ส CI (การรวมต่อเนื่อง) ยอดนิยมซึ่งใช้กันอย่างแพร่หลายสำหรับการพัฒนาโครงการการปรับใช้และระบบอัตโนมัติ บทความนี้จะ

วิธีการติดตั้ง SaltStack บน CentOS 7

วิธีการติดตั้ง SaltStack บน CentOS 7

SaltStack หรือ Salt เป็นโซลูชันการจัดการการกำหนดค่าโอเพ่นซอร์สที่เป็นที่นิยมซึ่งสามารถใช้ในการดำเนินการทางไกลการจัดการการกำหนดค่า cod

วิธีการติดตั้งและกำหนดค่า Concourse CI บน CentOS 7

วิธีการติดตั้งและกำหนดค่า Concourse CI บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร บทนำการผนวกรวมอย่างต่อเนื่องเป็นแนวปฏิบัติในการพัฒนาซอฟต์แวร์ DevOps ซึ่งจะช่วยให้นักพัฒนาสามารถผสาน th บ่อยครั้ง

วิธีการติดตั้งและกำหนดค่า Concourse CI บน Ubuntu 16.04

วิธีการติดตั้งและกำหนดค่า Concourse CI บน Ubuntu 16.04

ใช้ระบบที่แตกต่างกันอย่างไร บทนำการผนวกรวมอย่างต่อเนื่องเป็นแนวปฏิบัติในการพัฒนาซอฟต์แวร์ DevOps ซึ่งจะช่วยให้นักพัฒนาสามารถผสาน th บ่อยครั้ง

Vultr โหลดบาลานเซอร์

Vultr โหลดบาลานเซอร์

Load Balancer คืออะไร Load Balancer นั่งอยู่หน้าแอปพลิเคชันของคุณและกระจายทราฟฟิกที่เข้ามาในหลาย ๆ แอปพลิเคชันของคุณ Fo

วิธีการติดตั้ง Drone CI บน Ubuntu 18.04

วิธีการติดตั้ง Drone CI บน Ubuntu 18.04

บทนำโดรนเป็นแพลตฟอร์มการทดสอบอัตโนมัติและการส่งมอบต่อเนื่องซึ่งทำงานบนโครงสร้างพื้นฐานของคุณเอง Drone รองรับทุกภาษา, บริการ o

วิธีการติดตั้งและกำหนดค่า Ansible บน Debian 9 สำหรับใช้กับ Windows Server

วิธีการติดตั้งและกำหนดค่า Ansible บน Debian 9 สำหรับใช้กับ Windows Server

ใช้ระบบที่แตกต่างกันอย่างไร Ansible เป็นเครื่องมือโอเพ่นซอร์สสำหรับการทำงานอัตโนมัติ มันจัดการการกำหนดค่าเซิร์ฟเวอร์ Linux และ Windows ของคุณ มันทำงานได้

วิธีการติดตั้ง Foreman บน CentOS 7

วิธีการติดตั้ง Foreman บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร โฟร์แมนเป็นเครื่องมือโอเพนซอร์ซฟรีและโอเพนซอร์สซึ่งช่วยคุณในการกำหนดค่าและจัดการเซิร์ฟเวอร์จริงและเซิร์ฟเวอร์เสมือน FOREMA

ใช้ SaltStack With Pillars บน Ubuntu 17.04

ใช้ SaltStack With Pillars บน Ubuntu 17.04

ในขณะที่ SaltStack เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการใช้งานการดำเนินงานบนเซิร์ฟเวอร์หลายเครื่องพร้อมกัน แต่ก็รองรับการกำหนดค่าที่กำหนดล่วงหน้าต่อโฮสต์ที่เก็บไว้ใน

วิธีการติดตั้งและกำหนดค่า GoCD บน CentOS 7

วิธีการติดตั้งและกำหนดค่า GoCD บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร GoCD เป็นโอเพ่นซอร์สการส่งต่อและระบบอัตโนมัติ ช่วยให้คุณสามารถสร้างแบบจำลองเวิร์กโฟลว์ที่ซับซ้อนโดยใช้ขนานและ

วิธีการติดตั้งและกำหนดค่า Ansible บน CentOS 7 สำหรับใช้กับ Windows Server

วิธีการติดตั้งและกำหนดค่า Ansible บน CentOS 7 สำหรับใช้กับ Windows Server

ใช้ระบบที่แตกต่างกันอย่างไร Ansible เป็นเครื่องมือโอเพ่นซอร์สสำหรับการทำงานอัตโนมัติ มันจัดการการกำหนดค่าเซิร์ฟเวอร์ Linux และ Windows ของคุณ มันทำงานได้

วิธีการติดตั้ง Strider CD บน Ubuntu 18.04

วิธีการติดตั้ง Strider CD บน Ubuntu 18.04

Introduction Strider CD เป็นแพลตฟอร์มโอเพ่นซอร์สอย่างต่อเนื่อง แอปพลิเคชันเขียนขึ้นใน Node.js และใช้ MongoDB เป็นแบ็กเอนด์หน่วยเก็บข้อมูล สาวเท้า

การสร้างภาพรวมด้วย Packer

การสร้างภาพรวมด้วย Packer

Packer คืออะไร Packer เป็นเครื่องมือสร้างภาพเซิร์ฟเวอร์ที่พัฒนาโดย HashiCorp ภาพเซิร์ฟเวอร์ หรืออีกทางหนึ่งคือโครงสร้างพื้นฐานที่ไม่เปลี่ยนรูปแบบ เป็นทางเลือกที่นิยม

ใช้ Chocolatey Package Manager บน Windows

ใช้ Chocolatey Package Manager บน Windows

บทนำ Chocolatey นำการจัดการแพคเกจที่ทำให้การจัดการซอฟต์แวร์และการอ้างอิงบน Linux เป็นเรื่องง่ายไปยัง Windows คุณสามารถทำได้อย่างรวดเร็วและง่ายดาย

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน