Salt Bootstrap คือ Script สำหรับติดตั้ง Salt Master หรือ Salt Minion โดยจะโหลด Dependency น้อยที่สุดที่ให้สามารถติดตั้ง Salt Master หรือ Salt Minion เป็น Binary และสามารถ run service Salt Master หรือ Salt Minion ได้เลย ในตัวอย่างนี้จะลองใช้ Salt Bootstrap ติดตั้ง Salt Master 1 host และ Salt Minion 2 host รายละเอียดดังนี้

  • 192.168.56.109 saltmaster.example.local saltmaster ติดตั้ง Salt Master บน Ubuntu Server 14.04
  • 192.168.56.110 saltminion1.example.local saltminion1 ติดตั้ง Salt Minion บน Ubuntu Server 14.04
  • 192.168.56.111 saltminion2.example.local saltminion2 ติดตั้ง Salt Minionn บน CentOS 7

เรามาเริ่มติดตั้ง Salt Master ที่เครื่อง saltmaster ก่อนน่ะครับ ให้เรา Download Script โดยใช้คำสั่ง

wget -O install_salt.sh https://bootstrap.saltstack.com

แล้วสั่ง execute script เพื่อติดตั้ง Salt Master โดยใช้ Option -M (ติดตั้ง Salt-Master) และ -N (ไม่ติดตั้ง Salt-Minion)


Continue reading

บทความนี้เรามาดูวิธีการทำ Multi Master-PKI Failover กันซึ่งจะไม่เหมือนการทำ Redundant Multi Master ในบทความที่แล้ว ตรงที่เครื่อง Salt Minion จะ connection ไปที่เครื่อง Salt Master หลักเครื่องเดียว ซึ่งถ้า Salt Master หลักไม่สามารถ connection ได้ Salt Minion ถึงจะย้ายไป conection กับ Salt Master อื่นที่อยู่ตาม list ใน config ของ Salt-Minion โดยมีขั้นตอนดังนี้

เครื่องที่ต้องใช้จะมี

  • Salt Master 2 เครื่องชื่อ saltmaster1 และ saltmaster2
  • Salt Minion 1 เครื่องชื่อ saltminion

ที่เครื่อง saltmaster1 และ saltmaster2 ตั้งค่า Salt Master ให้สร้าง file sign public key เพื่อใช้ Authen Reply

vi /etc/salt/master


Continue reading

Redundant Salt Master นั้นเป็นทั้ง Load balancing และ High-availability (HA) นั้นคือ Salt Minion หรือ Client จะทำการเชื่อมต่อไปยัง Salt Master ทั้งหมดที่มีใน list ของ file config Salt Minion และ Salt Master ทั้งหมดใน list มี Permission ต่อ Salt minion นั้นเท่ากัน เช่นเราสามารถสั่ง run SLS Formula หรือ list ip ในแต่ล่ะ Salt Master ได้ เป็นต้น ที่นี้เรามาดูวิธีการทำ Redundant Salt Master กันน่ะครับ

ในตัวอย่างจะมี

  • Salt Master 2 host ชื่อ saltmaster1 และ saltmaster2
  • Salt minion 1 host ชื่อ saltminion

แนะนำให้ตั้งค่าโดเมนไว้จะสะดวกในการใช้งาน แต่ถ้าไม่มีจะเพิ่มลงใน /etc/hosts ในทุกๆ เครื่องก็ได้ เปลี่ยนชื่อเครื่องและ ip address เป็นของคุณเอง


Continue reading

CircleCI คือ Host ที่ใช้สำหรับทดสอบ Build และ deploy ซึ่งเป็นของ CircleCI มาเปิดให้บริการ ซึ่งหากเราไม่ต้องการใช้ resource ของตัวเอง หรือเรามี resource ไม่พอ ก็ใช้ Host ของ CircleCI แทน โดยขั้นตอนแรกให้เราเข้าไปสมัคร Account สำหรับใช้งานที่ https://circleci.com แล้วจะ redirect มาที่หน้า githup เพื่อ Login หากเรามี Account อยู่บน Githup อยู่แล้วก็ใช้ได้เลยหากไม่มีก็สมัครใหม่ เมื่อ Login แล้วจะขึ้นหน้าให้เพิ่ม Public key ของ Host CircleCI ให้เรากด “Authorize application” ที่นี้ก็สามารถใช้งาน Host บน CircleCI ได้แล้วในบทความนี้จะใช้ Repository ของ tutum-docker-nginx เพื่อเป็นตัวอย่างในการ Bulid และ Deploy Service nginx Web Server โดยให้เราทำการ Fork Repository tutum-docker-nginx มาไว้ใน Repository ของเรา


Continue reading

ครั้งที่แล้วได้ติดตั้ง Salt กันไปเบื้องต้นแล้ว ครั้งนี้เรามาดูการสร้าง Salt Formula กันครับ อันดับแรกมาดูความหมายของคำต่างๆก่อนน่ะครับ State System เป็นส่วนประกอบของ Salt ที่ใช้ในการจัดการ Configuration ต่างๆ State System นั้นสร้างมาจาก SLS Formula ซึ่ง SLS Formula นั้นคือ file ที่อยู่ใน Salt file server หรือพูดง่ายๆ มันเป็น Formula ที่ถูกเขียนขึ้นและปกติจะเก็บไว้ที่ Path /srv/salt ของ Salt-Master ที่นี้เรามาทดลองสร้าง SLS Formula ดูอันดับแรกให้สร้าง file ที่ /srv/salt/vim.sls โดย SLS Formula นี้จะไปสั่งให้ Client ติดตั้ง Package vim

vi /srv/salt/vim.sls

เพิ่มข้อมูลลงในไฟล์ดังนี้

vim:
  pkg.installed

เสร็จแล้วลอง run sls ที่พึ่งสร้างเมื่อสักครู่นี้ โดยคำสั่งนี้จะทำให้เกิด State System และ run vim.sls นั้น

salt '*' state.sls vim


Continue reading

ในบทความนี้มาดูการติดตั้งและการใช้งานเบื้องต้น Salt กันน่ะครับ หลายคนอาจสงสัยว่า Salt คืออะไร? Salt คือตัวจัดการคอมพิวเตอร์หลายๆ เครื่องในคราวเดียว หรือในภาษาอังกฤษจะเรียกว่า infrastructure management เช่นถ้าหากเราต้องการดู ip เครื่อง ทุกๆ เครื่องพร้อมกันก็สามารถสั่งคำสั่งจาก server salt ไปเพื่อดูได้เลย แต่หากว่าคุณมีเครื่องคอมพิวเตอร์อยู่ 2-3 เครื่องก็ไม่ต้องใช้ครับลุกไปดูเองเลย หรือเราต้องการติดตั้งโปรแกรมที่เครื่องหลายๆ เครื่องพร้อมกัน Salt ก็สามารถทำได้ เป็นต้น

Salt เป็นโปรแกรมในลักษณะ Server-Client ซึ่งเป็นลักษณะ Active คือ Client เชื่อมต่อไปที่เครื่อง Server ก่อนเสมอ หมายความว่าหากเครื่อง Client เป้าหมายอยู่หลัง Gateway หรือ Firewall และไม่ได้ทำ forward port ก็ไม่มีปัญหาในการคุยกับ Client ขอให้เครื่อง Client สามารถออก internet ได้ก็พอ หรือ allow outgoing port 4505 และ 4506 ไว้ ต่อไปก็มาดูวิธีการติดตั้ง Salt-Master หรือเรียกว่า Salt Server และ Salt-Minion หรือเรียกว่า Salt Client ในบทความนี้จะติดตั้งทั้ง Salt-Master และ Salt-Minion บน Ubuntu Server 14.04 เครื่องเดียวกัน

ทำการเพิ่ม repository ของ Salt ก่อน

sudo apt-get install python-software-properties

sudo add-apt-repository ppa:saltstack/salt

แล้วทำการ update และติดตั้ง Salt-Master และ Salt-Minion


Continue reading

หากต้องการแชร์ file จากเครื่องที่เป็น Linux ให้เครื่องที่เป็น windows เข้ามาใช้งานนั้นก็สามารถทำได้โดยการติดตั้ง samba เพื่อช่วยจัดการ file sharing ใน Linux โดยในตัวอย่างนี้จะติดตั้งบน CentOS 7 เรามาดูวิธีการเลยครับ

การ Share file ให้ผู้ใช้งานทั่วไปที่ไม่ต้อง Authentication

เพื่อง่ายในการติดตั้งจะใช้ package manager yum ในการติดตั้ง samba ใช้คำสั่ง

yum -y install samba samba-client

ต่อไปทำการ backup default config samba ไว้ก่อน

mv /etc/samba/smb.conf /etc/samba/smb.conf.bak


Continue reading

หาก proxmox openvz ไม่สามารถเปิด console เครื่อง Guest ที่เป็น Openvz ที่หน้า web ui ได้มีวิธีแก้ไขดังนี้

remote เข้า terminal เครื่อง guest => Edit file /etc/init/tty1.conf ดังนี้


Continue reading

การแจ้งเตือนบน zabbix นั้นมีอยู่หลายทางด้วยกันไม่ว่าจะเป็นแจ้งเตือนด้วย mail,sms,xmpp(jabber) หรือแม้แต่ run script ก็สามารถทำได้ ซึ่งในบทความนี้จะยกตัวอย่างการแจ้งเตือนด้วย e-mail โดยหากมี event เกิดขึ้นให้ส่ง mail แจ้งเตือนไปที่ user pongsiri@example.local ที่นี้มาดูการตั้งค่าใน zabbix กันน่ะครับ

เปิดหน้า Web UI ของ zabbix ขึ้นมา => แท็ป Administration => Media types => คลิ๊กที่ Email

ใส่รายละเอียดต่างๆ ลงไป

  • Name: ชื่อของ media
  • Type: เลือก Email
  • SMTP Server: ใส่ชื่อ Host หรือ IP ของเครื่อง SMTP Server
  • SMTP helo: ใส่ชื่อ host ของ SMTP Server
  • SMTP email: ใส่ชื่อ Sender เช่น zabbix@example.local

ติ๊ก Enabled แล้ว Save


Continue reading

OpenNMS จัดเป็นระบบ Network Management ระดับองค์กรตัวแรกๆ ที่อยู่ในรูปแบบของ Opensource เป็นระบบที่มีความสามารถหลายอย่างและมีประสิทธิภาพ โดยการติดตั้งและการตั้งค่าต่างๆนั้นสามารถทำได้ไม่ยาก
การตรวจสอบสถานะเครือข่าย (monitoring) โดยรวมจะมีการแสดงผลของสถานะของสิ่งที่ต้องการตรวจสอบ ซึ่งอาจจะเป็น network device เช่น router หรือ switch หรือบาง interface ที่สำคัญของอุปกรณ์เหล่านี้ นอกจากนี้ยังเป็นการตรวจสอบสถานะของ host เช่น web/mail/database/ftp servers หรืออาจจะเป็นการ monitor service ที่ run อยู่บนเครื่องต่างๆ โดยการแสดงสถานะจะบ่งบอกว่าสิ่งนั้นๆยังมีการทำงานอยู่หรือไม่ เช่น Up/Down แต่ถ้ามีเหตุการณ์ที่ไม่ปกติจะมีการแสดงถึงดีกรีของความผิดปกติ เช่น Warning หรือ Critical เป็นต้น พร้อมทั้งรายละเอียดของความผิดปกติตามที่ระบบตรวจเจอ นอกจากนี้จะมีองค์ประกอบที่สำคัญอีกส่วนหนึ่ง คือการแจ้งเตือน (alerting) หรือ ระบบที่คอยส่ง notification ไปยังผู้ที่ทำหน้าที่ดูแลอุปกรณ์หรือ service นั้นๆ
Continue reading