發表文章

目前顯示的是有「ubuntu」標籤的文章

如何在Ubuntu中開機自動啟動openvpn client

  1. 修改openvpn預設設定 # sudo nano /etc/default/openvpn 將選項AUTOSTART="all"啟用 2. 將ovpn設定檔複製到/etc/openvpn內 # sudo cp /root/abay.ovpn /etc/openvpn/  3. 啟用service # sudo systemctl enable openvpn@client.service 4. 重新載入 # sudo systemctl daemon-reload

如何取得docker container中的ip address與網路界面

How to discover the IP address and interface for a docker container 這篇主要講述如何取得docker container的IP位置與網路界面資訊。當你的docker container中並沒有安裝IP相關的工具程式,無法透過docker exec的方式執行ip相關的工具程式來取得IP位置與網路界面資訊,並且該網路界面的IP設定與docker DHCP預設配發的不一樣的時候,你可以這樣做。 Step 1 取得network namespace file # docker inspect abay-test -f "{{.NetworkSettings.SandboxKey}}" 假設我們要取得的docker container的名稱為abay-test,執行這行指令後會得到/var/run/docker/netns/6f6c87265050  Step 2.  建立network namespace連結 # ln -s /var/run/docker/netns/6f6c87265050 /var/run/netns/6f6c87265050 這個檔案會在下次重新開機的時候就會不見 Setp 3. 在指定namespace下執行ip a # ip netns exec 6f6c87265050 ip a 輸出的結果 abay@vm-01:~$ sudo ip netns exec 6f6c87265050 ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 87: eth0@if88: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP ...

使用在Ubuntu中PowerShell

圖片
Using PowerShell on Ubuntu 本篇文章介紹如何在Ubuntu中使用PowerShell,通常會需要這樣使用可能是有你特定使用的command在powershell中也希望可以在Linux環境中執行。PowerShell是一個開源專案相關的細節可以在https://github.com/powershell/powershell中查閱到詳細的資訊。 安裝 PowerShell 這邊介紹在Ubuntu 20.04中安裝PowerShell 更新系統的套件資訊資料庫 sudo apt-get update 安裝必要套件 sudo apt-get install -y wget apt-transport-https software-properties-common 下載Microsoft repository GPG keys wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb 註冊Microsoft repository GPG keys sudo dpkg -i packages-microsoft-prod.deb 更新套件清單 sudo apt-get update 安裝PowerShell sudo apt-get install -y powershell 執行 PowerShell pwsh

如何建立KVM(qemu-kvm)虛擬機器

1. 建立虛擬機器 建立虛擬磁碟 qemu-img create -f qcow2 /home/abay/kvm/ubuntu1804.qcow2 60G 建立VM virt-install --virt-type kvm --name ubuntu1804 --ram 2048 --disk /home/abay/kvm/ ubuntu1804.qcow2,format =qcow2 --network network =default --graphics vnc,listen = 0.0.0.0,password =YOUR_PASSWORD --noautoconsole --os-type=linux --os-variant=ubuntu20.04 --accelerate --cdrom=/home/abay/Downloads/ubuntu-20.04-desktop-amd64.iso 列出VM virsh list --all 2. 複製(Clone) VM virt-clone --original VM-NAME  --name NEW-VM-NAME  --auto-clone

如何處理ssh-add出現錯誤Could not open a ......

當你打算將私鑰加入到你的SSH的時候,系統卻出現這樣的錯誤訊息: Could not open a connection to your authentication agent 該如何處理呢? 使用ssh-agent 來處理就可以: # ssh-agent bash # ssh-add <key>

如何關閉nouveau-kernel-driver,解決無法安裝Nvidia driver問題

圖片
如何關閉nouveau-kernel-driver,解決無法安裝Nvidia driver問題 在安裝Nvidia官方的驅動程式時遇到無法執行安裝的情況,並且出現這樣的訊息: 問題環境: 1. Ubuntu 18.04 處理方式: 1. 移除所有已經安裝的Nvidia相關的套件: sudo apt-get remove nvidia* && sudo apt autoremove 2. 安裝相關套件用來重新編譯kernel(安裝Nvidia-driver使用) sudo apt-get install dkms build-essential linux-headers-generic 3. 編輯modprobe設定檔,停用 nouveau kernel driver sudo vim /etc/modprobe.d/blacklist.conf 加入下列的設定: blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off 4. 停用kernal nouveau echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf 5. 重新更新kernel sudo update-initramfs -u 6. 重新開機 sudo update-initramfs -u 最後再繼續安裝官方的driver即可。

如何安裝Microsoft SQL Drivers在PHP中

Installing the Microsoft PHP Drivers 4.3 for SQL Server 安裝環境: Ubuntu 16.04 for PHP 7.0 安裝步驟: Step 1: 安裝PHP與相關的套件 # apt-get -y install php7.0 mcrypt php7.0-mcrypt php-mbstring php-pear php7.0-dev php7.0-xml Step 2: 安裝編譯PHP SQLSRV, PDO_SQLSRV相關套件 #curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - #curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list #apt-get update #ACCEPT_EULA=Y apt-get install msodbcsql mssql-tools #apt-get install unixodbc-dev #'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile #'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc #source ~/.bashrc Step 3: 安裝PHP SQLSRV, PDO_SQLSRV # pear config-set php_ini `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` system #pecl install sqlsrv #pecl install pdo_sqlsrv Step 4: 修改php.ini檔案,新增extension #echo "ext...

如何擷取網頁畫面使用selenium在command line

這邊主要介紹,如何使用Selenium來擷取網站的畫面。 實作的方式是在一台Ubuntu Server沒有安裝Xwindow的機器上,編寫Python的程式來執行。 第一步:先安裝下列套件: sudo apt install xvfb xserver-xephyr firefox 第二步:透過python pip來安裝selenium sudo pip install selenium 第三步:安裝PyVirtualDisplay sudo pip install pyvirtualdisplay 第四步:建立一個1920x1080x24bit的虛擬螢幕 sudo Xvfb :10 -ac -screen 0 1920x1080x24 & sudo export DISPLAY=:10 第五步:範例程式,執行www.tradingvalley.com網站頁面抓取 from pyvirtualdisplay import Display from selenium import webdriver display = Display(visible=10, size=(1920, 1080)) display.start() browser = webdriver.Firefox(executable_path='/root/geckodriver') browser.get('http://www.tradingvalley.com') #browser.execute_script("") print browser.title time.sleep(5) browser.save_screenshot('tradingvalley.png') browser.quit() display.stop()

如何使用ssh key登入不用密碼在ubuntu

這篇文章要介紹如何使用ssh key來登入Linux系統,不需要使用密碼的方式登入。 建立一個帳號 使用adduser指令來建立,並使用 --disabled-password選項設定為不要使用密碼 sudo adduser abay --disabled-password 切換到新建立的使用者,並且建立設定檔 sudo su - abay 建立.ssh目錄與設定權限為700 mkdir .ssh chmod 700 .ssh 建立 authorized_keys檔案在.ssh中並且設定權限為600 touch .ssh/authorized_keys chmod 600 .ssh/authorized_keys 使用文字編輯器打開authorized_keys並將public key加入 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE 完成後就可以透過你自己的私鑰來登入系統,不需要使用密碼的方式。 如何由pem檔取得public key: ssh-keygen -y [-f input_keyfile] 指令回覆的結果就是RSA

如何安裝與使用Rabbitmq Server在Ubuntu

圖片
如何安裝與使用Rabbitmq Server在Ubuntu 本篇文章介紹如何在Ubuntu上安裝Rabbitmq server並且使用Python編寫helloworld範例程式來驗證rabbitmq server可以正常運作。 安裝 在ubuntu上安裝rabbitmq server很簡單只需要一個安裝指令就可以完成。 sudo apt-get install rabbitmq-server 啟動 安裝完成後,透過service指令來啟動 sudo service start rabbitmq-server 確認rabbitmq-server是否有啟動成功 sudo service status rabbitmq-server 管理 rabbitmq client連線過來server這邊需要有使用者與認證,開始使用之前先透過rabbitmqctl指令來設定 列出所有使用者 sudo rabbitmqctl list_users Listing users ... guest [administrator] 上述顯示只有一個guest使用者,該使用者權限等級為Administrator 目前一共有四種權限 none management policymaker monitoring administrator 建立一個使用者 sudo rabbitmqctl add_users abay password 設定使用權限 sudo rabbitmqctl set_user_tags abay administrator Setting tags for user "abay" to [administrator] ... sudo rabbitmqctl list_users Listing users ... guest [administrator] abay [administrator] 啟用Web管理介面 sudo rabbitmq-plugins enable rabbitmq_management The following plugins ...

如何mount一個virtual disk image?

這篇文章說明如何直接掛載一個虛擬磁碟的映象檔(VDI, VHD, VMDK)? 在Linux環境中,如果你需要將一個磁碟的映象檔掛載起來當作一個磁碟來使用的時候,這裡的說明就是你可以參考的文件。 步驟 RAW格式的image: 1. 先查看你要掛載的映象檔的分割 $ /sbin/fdisk -lu disk.img 2. 透過losetup來設定 # losetup /dev/loop0 disk.img -o {Start sector * bytes} 這邊offset的大小計算方式,就是你要掛載的partition的起始sector,乘上每個sector的大小。如果虛擬磁碟中沒有分割的話,就可以直接掛載,或者offset設定為0。 3. 確認一下檔案系統 # file -s /dev/loop0 4. 掛載檔案 # mount /dev/loop0 /mnt 5. 如果磁碟的檔案系統是系統可以直接支援的,也可以直接mount # mount -o loop,offset=$((10860003 * 512)) disk.img /mnt 其他格式的image: 如果你的虛擬磁碟格視為VMDK這個時候就可以透過qemu來協助 1. 先載入nbd kernel module # modprobe nbd max_part=16 2. 連接vmdk的印象檔到一個nbd裝置 # qemu-nbd -c /dev/nbd0 image.vmdk 3. 掛載這個nbd裝置 # mount /dev/nbd0p1 /mnt/image 卸載的時候,記得要qemu-nbd -d /dev/nbd0來解除連結。 參考 Loop-mounting partitions from a disk image, http://madduck.net/blog/2006.10.20:loop-mounting-partitions-from-a-disk-image/ https://en.wikibooks.org/wiki/QEMU/Images#Mounting_an_image_on_the_host

如何快速安裝Ceph的物件式儲存服務?

圖片
前言 這篇文章主要依據文件[1],來介紹如何安裝Ceph的物件式儲存服務。如果原官方文件有修改,請以官方文件為準。實際安裝的Linus版本為Ubuntu 14.04。 進一步了解Ceph可以參考另一篇文章, 了解Ceph的儲存服務 。 安裝步驟 使用ceph-deploy這個工具來快速架設。這邊的範例,一共有四個節點分別為,管理節點adm、監控節點mon, 還有兩個OSD節點,osd0, osd1。 安裝程序由管理節點(adm node)開始進行。 1. 建立ceph-deploy在管理節點上 系統安裝的第一步,先建置管理節點(adm node),這個節點主要負責管理與建置其他節點使用。ceph-depoly這個工具就是安裝在此節點上。 a. 加入ceph的金鑰 wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add - 加入ceph下載的金鑰,使系統可以取得目前的套件。 b. 將ceph packages下載到系統的repository上 echo deb http://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list 將{ceph-stable-release}改成你要安裝的版本代號,例如,你要安裝0.9版本,就改成inferanalis c. 更新你系統的repository並且安裝ceph-deploy: sudo apt-get update && sudo apt-get install ceph-deploy 2. 安裝NTP服務 完成ceph-deply的安裝後,接著就是安裝NTP Server來提供各節點時間校正。 安裝NTP在admin node上 sudo apt-get install ntp 3. 建立一個user用來安裝ceph,給ceph-deploy使用 a. 在每個ceph節點上建立一個user ssh user@c...

如何設定使用者有sudo權限且不需要輸入密碼?

在Ubuntu的環境下如果需要將使用者的權限設定為可以sudo要如何作呢? 只需要執行下列指令,來進行設定即可: 產生sudo的設定檔: echo "{username} ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/{username} 例如要修改使用者abay echo "abay ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/abay 修改設定檔的權限: sudo chmod 0440 /etc/sudoers.d/{username} 完成上述指令該使用者即可使用sudo來切換使用者權限。 另外一個簡單的方式: 直接透過visudo指令編輯sudo設定檔就可以了。