2016年5月25日水曜日

Vagrantを使用してCentOS7上でGnome DesktopとXRDPがインストールされた仮想マシン(CentOS7)を作成する

Vagrantを使用してCentOS7上でGnome DesktopとXRDPがインストールされた仮想マシンを作成するには、以下のVagrantfileを使用します。

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "centos/7"
  config.vm.hostname = "centos7gui"
  config.vm.network :public_network, ip:"192.168.1.11"
  config.vm.synced_folder ".", "/home/vagrant/sync", disabled: true
  config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "centos7gui"
     vbox.gui = true
  end
  config.vm.provision "shell", inline: <<-SHELL
yum -y install wget

# GUIに関連するパッケージをインストール
sudo yum -y groupinstall "Server with GUI"
# 不要なダイアログを表示されないようにする
sudo sh -c "echo 'X-GNOME-Autostart-enabled=false' >> /etc/xdg/autostart/gnome-welcome-tour.desktop"
sudo sh -c "echo 'X-GNOME-Autostart-enabled=false' >> /etc/xdg/autostart/gnome-software-service.desktop"
sudo sh -c "echo 'X-GNOME-Autostart-enabled=false' >> /etc/xdg/autostart/gnome-settings-daemon.desktop"
sudo systemctl disable initial-setup-graphical.service
sudo systemctl disable initial-setup-text.service

sudo systemctl set-default graphical.target

# 日本語のロケールを設定
sudo yum -y install ibus-kkc vlgothic-*
localectl set-locale LANG=ja_JP.UTF-8

# XRDPをインストールして、リモートデスクトップでログインできるようにする。
sudo yum -y install epel-release
sudo yum -y install xrdp
sudo yum -y install tigervnc-server

sudo chcon -t bin_t /usr/sbin/xrdp
sudo chcon -t bin_t /usr/sbin/xrdp-sesman
sudo sed -i "s/max_bpp=32/max_bpp=24/" /etc/xrdp/xrdp.ini 
systemctl start xrdp.service
systemctl enable xrdp.service


telinit 5
SHELL

end

2016年1月4日月曜日

psycopg2を使用してクエリー結果をカラム名でアクセスする

psycopg2を使用してクエリー結果をカラム名でアクセスするには、以下のコードのようにpsycopg2.extrasのDictCursorを使用します。

import psycopg2
import psycopg2.extras

try:
    cnn = psycopg2.connect("dbname=yourdb host=yourhost user=you password=yourpass")
    cur = cnn.cursor(cursor_factory=psycopg2.extras.DictCursor)

    cur.execute("""
      select ... from ...
    """)
    rows = cur.fetchall()
    for row in rows:
        print row['column_name']

    cur.close()
    cnn.close()

except (psycopg2.OperationalError) as e:
    print (e)

※参考
http://initd.org/psycopg/docs/extras.html


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

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に関する他の記事はこちらを参照してください。