2015年12月6日日曜日

pyvboxでVirtualBoxの仮想マシンを起動する

pyvboxでVirtualBoxの仮想マシンを起動するには、以下のコードを実行します。

import virtualbox

vmname = 'samplevm'
session = virtualbox.Session()
vm = virtualbox.VirtualBox().find_machine(vmname)
progress = vm.launch_vm_process(session, 'gui', '')
progress.wait_for_completion(-1)

○関連情報
pyvboxのドキュメントpyvbox 0.2.2 documentation

2015年11月30日月曜日

pyvboxでVirtualBoxの仮想マシンの名前・OSタイプ・CPU数・メモリサイズを取得する

pyvboxでVirtualBoxの仮想マシンの名前・OSタイプ・CPU数・メモリサイズを取得するには、以下のコードを実行します。

import virtualbox

for vm in virtualbox.VirtualBox().machines:
  print "Name:" + vm.name
  print "OS Type ID:" + vm.os_type_id
  print "CPU Count:" + str(vm.cpu_count)
  print "Memory Size:" + str(vm.memory_size)
  print "VRAM Size:" + str(vm.vram_size)
  print "----"

○pyvboxのインストール(Ubuntuなど)
sudo apt-get install python-pip
sudo pip install pyvbox


○関連情報
pyvboxのドキュメントpyvbox 0.2.2 documentation

2014年11月8日土曜日

DockerfileでApache2を起動するイメージを作成する

DockerでApache2を起動するイメージを作成するには、以下のようなDockerfileを使用します。
htmlなどのコンテンツはwwwサブディレクトリに配置します。

サンプルDockerfile
FROM ubuntu:latest

MAINTAINER kyle

RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install apache2

ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_PID_FILE /var/run/apache2.pid
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_PID_FILE /var/run/apache2.pid

EXPOSE 80

ADD www /var/www/html

CMD ["/usr/sbin/apache2ctl", "-DFOREGROUND"]

2014年11月3日月曜日

Raspberry piからWindows共有フォルダをマウントする

Raspberry piからWindows共有フォルダをマウントするには、以下の手順を実行します。

1.「コンピュータの管理」などでpiユーザを作成します。

2.Raspberry piのfstab編集
sudo vi /etc/fstabに以下の行を追加
//[windows機]/[共有フォルダ] /mnt/[ローカルのマウント位置] cifs username=pi,password=pi,uid=1000,gid=1000 0 0
※例
//win_machine/pub /mnt/pub cifs username=pi,password=pi,uid=1000,gid=1000 0 0

3.マウント
sudo mount /mnt/pub

バックアップなどをしたい場合は以下のような感じでrsyncコマンドを実行します。
rsync -r -v --progress -s /mnt/pub /opt/backup

2019/02/11追記:新しいWindows環境では、下記のようにsec=ntlm,vers=2.0を追加してください。
//win_machine/pub /mnt/pub cifs sec=ntlm,vers=2.0,username=pi,password=pi,uid=1000,gid=1000 0 0

○関連情報
・Raspberry Piに関する他の記事はこちらを参照してください。

・Raspberry Pi上のDockerに関する他の記事はこちらを参照してください。

2014年9月17日水曜日

RabbitMQをubuntu14.04にインストールする

1. apt-getにリポジトリ登録
echo "deb http://www.rabbitmq.com/debian/ testing main" | sudo tee -a /etc/apt/sources.list

wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
sudo apt-key add rabbitmq-signing-key-public.asc

2. RabbitMQのインストール
sudo apt-get update
sudo apt-get install rabbitmq-server

3. Management, mqttプラグインの導入
sudo rabbitmq-plugins enable rabbitmq_mqtt
sudo rabbitmq-plugins enable rabbitmq_management

4. guestユーザがリモートからログインできるように変更
cd /usr/share/doc/rabbitmq-server/
sudo gzip -d rabbitmq.config.example.gz
sudo cp rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
cd /etc/rabbitmq/
sudo vi rabbitmq.config
%% {loopback_users, []},の行を複製して、アンコメント。これによりguestユーザがremoteからログインできるようになる。
%% {loopback_users, []},
{loopback_users, []}

5. RabbitMQの再起動
sudo service rabbitmq-server restart

○環境
Ubuntu 14.04, RabbitMQ 3.3.5

○関連情報
・RabbitMQに関する他の記事はこちらを参照してください。

2014年8月22日金曜日

raspberry piでroot file systemを2T以上のUSB HDDに移動する

raspberry piでroot file systemを2T以上のUSB HDDに移動するには、以下の手順を実行します。
ログ出力などすべてHDDに出力することによりSDカードを延命化できます。

Root filesystemのUSB HDD移行手順

1.(すでにmountされている場合)unmount
sudo umount /dev/sda1
2. パーティション作成
※ディスク丸ごとを1つのパーティションにする場合。
sudoparted /dev/sda
mklabel gpt
mkpart primary ext4 0 -1s
quit
3. ext4 file system作成
sudo mkfs.ext4 /dev/sda1
4. mountする
cd /media
sudo mkdir usbhdd
sudo mount /dev/sda1 /media/usbhdd
df -h
5. sdカード内容をコピー
※必要に応じてrsyncインストール。
sudo apt-get install rsync 
sudo rsync -axv / /media/usbhdd
6.起動時設定
sudo vi /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/sda1 
rootfstype=ext4 elevator=deadline rootwait rootdelay=10
※rootを/dev/sda1に変更とrootdelay追加

/etc/fstabで「/」のデバイスを/dev/sda1に修正します。
sudo vi /media/usbhdd/etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/sda1  /               ext4    defaults,noatime  0       1
#/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, so no using swapon|off 
from here on, use  dphys-swapfile swap[on|off]  for that
※ /bootのデバイスはRaspbianのバージョンによって異なります(StretchなどではPARTUUID...となっています)。

7.再起動
sudo reboot

※2018/08/21追記 - Raspbian Stretch Lite (version : 2018 June)での上記手順を実行することができます。
※2020/07/13追記 - Raspbian Busterでも上記手順を実行することができます。

2012年2月11日土曜日

LuaでSQL Serverのテーブルを選択する

LuaでSQL Serverのテーブルを選択するには、以下のコードを実行します。
require "luasql.odbc"
env = assert(luasql.odbc())
-- MSSQLというODBC DSNに接続
conn = assert(env:connect("MSSQL", "sa", "password"))
-- クエリーを実行
cur = assert(conn:execute(
  "select company_id, company_name from company"))
-- 返された行を表示
row = cur:fetch ({}, "a")
while row do
  print([[会社ID:]] .. row.company_id .. 
    [[ 会社名: ]] .. row.company_name)
  row = cur:fetch (row, "a")
end
-- 閉じる
cur:close()
conn:close()
env:close()

動作環境
Lua for Windows 5.1.4, Microsoft SQL Server 2008 R2 SP1 Express