Friday, July 31, 2009

Thursday, July 30, 2009

Wednesday, July 29, 2009

Tuesday, July 28, 2009

Monday, July 27, 2009

07/27/2008


  • いちおうスケジュールどおりだったが、先週の遅れの件で。

  • 寝不足だったので定時で退社する予定だったが、直前にメールを受信してしまった。

  • 22:30 まで職場で作業をしていた。



Sunday, July 26, 2009

07/26/2009







Getting Started With OpenLDAP on Ubuntu Linux

About



OpenLDAP を Ubuntu Linux にインストールしたその作業メモを記載する。





Environment



環境は次のとおり。

- VMware Server on Ubuntu Linux 8.10 Desktop 64-bit version
- Ubuntu Linux 9.04 Server 32-bit version
- Ubuntu Linux 9.04 in Amazon Web Services





Preface



今回 Ubuntu Linux に OpenLDAP をインストールして設定するため OpenLDAP Server を参考にした。基本的に、このドキュメントと同様の構成でまとめる。日本語に翻訳しにくい部分など、英語のままだったり、直訳っぽかったりするので、そのうち修正する。

環境について言及する。4 GB のメモリがインストールされている ThinkPad T61 に Ubuntu Linux 8.10 desktop の 64-bit バージョンをインストールした。この Ubuntu に VMware Server 2 の 64-bit バージョンをインストールした。この VMware Server に virtual machine を作成し、Ubuntu Linux 9.04 server の 32-bit バージョンをインストールした。この VM に OpenLDAP をインストールする。

また、一部の設定を試験するにあたり Amazon Web Services が提供している AMI を使用する。





Installation



まず、OpenLDAP サーバ deamon である slapd と、LDAP 管理ユーティリティが含まれる ldap-utils をインストールする。

sudo apt-get install slapd ldap-utils



このインストレーションプロセスにおいて、LDAP directory admin のパスワード (と確認) を入力する。任意のパスワードを入力して ENTER キーを押下する。とりあえず

    ldapadmin

を入力した。

デフォルトで、ディレクトリサフィックスは、サーバのドメインネームとマッチする。たとえば、もしサーバマシンの FQDN が ldap.example.com である場合、デフォルトのサフィックスは dc=example,dc=com となる。もし、異なるサフィックスを指定したいなら、dpkg-reconfigure を実行して reconfigure できる。次を、ターミナルプロンプトに入力する :

sudo dpkg-reconfigure slapd



その後、コンフィギュレーションダイアログに基づいたメニューを経由し、様々な slapd オプションの設定が許可される。以下は、メニューで質問される項目と、指定する値だ。

- Omit OpenLDAP server configuratin? : No
- Domain name : satoshiabe.jp
- Organization name : satoshiabejp
- Select a backend database (BDB or HDB) : HBD (The HDB backend is recommendded)
- Do you want the database to be removed when slalpd is purged? : No
- Move old database in /var/lib/ldap : Yes
- Administrator password : ldapadmin
- Allow LDAPv2 protocol : No





Configuration



OpenLDAP は、cn=config DIT (Directory Information Tree) を含むセパレートデータベースを使用する。この cn=config DIT は、ダイナミックに slapd daemon を configure するために使用され、サービスの提供を停止せず、schema 定義、インデックス、ACL などの変更を許可する。この cn=confg tree は ldap-utils パッケージの utilities を使用して操作される。たとえば


  • tree を閲覧するために ldapsearch を使用する --- installation または reconfiguration したときに設定したアドミンパスワードを入力する。


  • ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W olcDatabase={1}hdb



    $ ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W olcDatabase={1}hdb
    Enter LDAP Password:
    dn: olcDatabase={1}hdb,cn=config
    objectClass: olcDatabaseConfig
    objectClass: olcHdbConfig
    olcDatabase: {1}hdb
    olcDbDirectory: /var/lib/ldap
    olcSuffix: dc=satoshiabe,dc=jp
    olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=satosh
    iabe,dc=jp" write by anonymous auth by self write by * none
    olcAccess: {1}to dn.base="" by * read
    olcAccess: {2}to * by dn="cn=admin,dc=satoshiabe,dc=jp" write by * read
    olcLastMod: TRUE
    olcDbCheckpoint: 512 30
    olcDbConfig: {0}set_cachesize 0 2097152 0
    olcDbConfig: {1}set_lk_max_objects 1500
    olcDbConfig: {2}set_lk_max_locks 1500
    olcDbConfig: {3}set_lk_max_lockers 1500
    olcDbIndex: objectClass eq

    $

    上記の出力は、HDB バックエンドデータベースの現在のコンフィギュレーションオプションである。上記の例は dc=satoshiabe,dc=jp サフィックスを含んでいる。

  • フィルタを提供してサーチをリファインする、この場合インデックスされたアトリビュートのみが表示される。


  • ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W olcDatabase={1}hdb olcDbIndex



    $ ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W olcDatabase={1}hdb olcDbIndex
    Enter LDAP Password:
    dn: olcDatabase={1}hdb,cn=config
    olcDbIndex: objectClass eq

    $

  • cn=config tree 編集の例として、ldapmodify を実行して、もうひとつのアトリビュートをインデックスリストへ追加する。


  • ldapmodify -x -D cn=admin,cn=config -W



    $ ldapmodify -x -D cn=admin,cn=config -W
    Enter LDAP Password:
    dn: olcDatabase={1}hdb,cn=config
    add: olcDbIndex
    olcDbIndex: cn eq,pres,sub

    modifying entry "olcDatabase={1}hdb,cn=config"

    $

  • ldapmodify は、変更をファイルからも読み込める。次の行をコピーアンドペーストし uid_index.ldif という名前でファイルを作成する。


  • dn: olcDatabase={1}hdb,cn=config
    add: olcDbIndex
    olcDbIndex: uid eq,pres,sub



    ldapmodify を実行する。

    ldapmodify -x -D cn=admin,cn=config -W -f uid_index.ldif



    $ ldapmodify -x -D cn=admin,cn=config -W -f uid_index.ldif
    Enter LDAP Password:
    modifying entry "olcDatabase={1}hdb,cn=config"

    $

    このメソッドは、大きな変更を実行するときに有効だ。

  • slapd に、アディショナルな schema を追加するために LDIF フォーマットにコンバートされた schema が要求される。幸いにも、slapd プログラムは、このコンバージョンを自動化できる。続く例は misc.schema を追加する。


  • 1. まず schema_convert.conf という名前のファイルを作成し、そのファイルに次の内容を記述する。

    include /etc/ldap/schema/core.schema
    include /etc/ldap/schema/collective.schema
    include /etc/ldap/schema/corba.schema
    include /etc/ldap/schema/cosine.schema
    include /etc/ldap/schema/duaconf.schema
    include /etc/ldap/schema/dyngroup.schema
    include /etc/ldap/schema/inetorgperson.schema
    include /etc/ldap/schema/java.schema
    include /etc/ldap/schema/misc.schema
    include /etc/ldap/schema/nis.schema
    include /etc/ldap/schema/openldap.schema
    include /etc/ldap/schema/ppolicy.schema



    2. 続いて、出力を保持するためのテンポラリなディレクトリを作成する。

    mkdir /tmp/ldif_output



    3. 続いて schema ファイルを LDIF へコンバートするために slaptest を実行する。

    sudo slaptest -f schema_convert.conf -F /tmp/ldif_output



    4. /tmp/ldif_output/cn=config/cn=schema/cn={8}misc.ldif ファイルを編集し、次のアトリビュートを変更する。

    sudo vi /tmp/ldif_output/cn=config/cn=schema/cn={8}misc.ldif



    次のアトリビュートを変更する。

    dn: cn=misc,cn=schema,cn=config
    ...
    cn: misc



    また、ファイルの最下部から次の行を削除する。

    structuralObjectClass: olcSchemaConfig
    entryUUID: 10dae0ea-0760-102d-80d3-f9366b7f7757
    creatorsName: cn=config
    createTimestamp: 20080826021140Z
    entryCSN: 20080826021140.791425Z#000000#000#000000
    modifiersName: cn=config
    modifyTimestamp: 20080826021140Z



    5. 最後に ldapadd ユーティリティを実行し、ディレクトリに新しい schema を追加する。

    sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{8\}misc.ldif



    There should now be a dn: cn={4}misc,cn=schema,cn=config entry in the cn=config tree.






Populating LDAP



ディレクトリは、installation または reconfiguration の途中で作成されたので、続いて、情報を追加する。"classical" な scheme - address book application と Unix Posix accounts とにコンパチブルな - により追加される。Posix accounts は、様々なアプリケーション - Web applications や MTA applications など - を認証を許可する。

外部 application が LDAP を使用して認証するためには、互いに特定の configure をしなければならない。詳細な情報を、個々の application の documentation を参照すること。

LDAP directories は LDIF ファイルにより populate される。次の例の LDIF ファイルをコピーし john.ldif とネーミングし、ファイルシステムのどこかに保存する。

dn: ou=People,dc=satoshiabe,dc=jp
objectClass: organizationalUnit
ou: People

dn: ou=Groups,dc=satoshiabe,dc=jp
objectClass: organizationalUnit
ou: Groups

dn: uid=john,ou=People,dc=satoshiabe,dc=jp
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: john
sn: Doe
givenName: John
cn: John Doe
displayName: John Doe
uidNumber: 10000
gidNumber: 10000
userPassword: password
gecos: John Doe
loginShell: /bin/bash
homeDirectory: /home/john
shadowExpire: -1
shadowFlag: 0
shadowWarning: 7
shadowMin: 8
shadowMax: 999999
shadowLastChange: 10877
mail: john.doe@satoshiabe.jp
postalCode: 31000
l: Toulouse
o: Example
mobile: +33 (0)6 xx xx xx xx
homePhone: +33 (0)5 xx xx xx xx
title: System Administrator
postalAddress:
initials: JD

dn: cn=example,ou=Groups,dc=satoshiabe,dc=jp
objectClass: posixGroup
cn: example
gidNumber: 10000



この例において、ディレクトリ構造とユーザとグループがセットアップされる。他の例において、すべてのエントリに objectClass: top が追加されるかもしれないが、それはデフォルトのふるまいで、明示的にそれを追加しなければならないわけでない。

エントリを LADP directory 追加するために ldapadd ユーティリティを使用する。

ldapadd -x -D cn=admin,dc=satoshiabe,dc=jp -W -f john.ldif



$ ldapadd -x -D cn=admin,dc=satoshiabe,dc=jp -W -f john.ldif
Enter LDAP Password:
adding new entry "ou=people,dc=satoshiabe,dc=jp"

adding new entry "ou=groups,dc=satoshiabe,dc=jp"

adding new entry "uid=john,ou=people,dc=satoshiabe,dc=jp"

adding new entry "cn=example,ou=groups,dc=satoshiabe,dc=jp"

$

ldap-utils パッケージのツールにより、内容が正常に追加されたかをチェックできる。LDAP directory の検索を実行するために :

ldapsearch -xLLL -b "dc=satoshiabe,dc=jp" uid=john sn givenName cn



$ ldapsearch -xLLL -b "dc=satoshiabe,dc=jp" uid=john sn givenName cn
dn: uid=john,ou=people,dc=satoshiabe,dc=jp
sn: Doe
givenName: John
cn: John Doe

$


  • -x: will not use SASL authentication method, which is the default.

  • -LLL: disable printing LDIF schema information.







LDAP replication



しばしば LDAP は、早期に high クリティカルなネットワークのサービスとなりえる。複数のシステムは、認証および承認およびコンフィギュレーションなどのために LDAP に依存するようになる。レプリケーションを通じてリダンダントシステムをセットアップすることは、よいアイディアである。

...

以下の example は、複数のマスターコンフィギュレーションである。この設定により互いの OpenLDAP サーバは、互いに push と pull の replication を実現する。

1. 最初に、cn=config データベースを同期するサーバを設定する。syncrepl_cn-config.ldif という名前のファイルを作成する。

dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: syncprov

dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1 ldap://172.16.227.129
olcServerID: 2 ldap://172.16.227.130

dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001 provider=ldap://172.16.227.129 binddn="cn=admin,cn=config" bindmethod=simple
credentials=secret searchbase="cn=config" type=refreshAndPersist
retry="5 5 300 5" timeout=1
olcSyncRepl: rid=002 provider=ldap://172.16.227.130 binddn="cn=admin,cn=config" bindmethod=simple
credentials=secret searchbase="cn=config" type=refreshAndPersist
retry="5 5 300 5" timeout=1
-
add: olcMirrorMode
olcMirrorMode: TRUE


2. Edit the file changing

IP address が記述されている部分を、自分の環境に適用させる。2 つ以上の LDAP サーバを保持でき、そして 1 台に変更が発生したとき、残りのサーバに同期される。olcServerID の値を、また olcSyncRepl エントリの rid もインクリメントすること。また、credentials=secret に admin password を指定する。

3. 次に ldapmodify utility を使用して、この LDIF ファイルを追加する。

ldapmodify -x -D cn=admin,cn=config -W -f syncrepl_cn-config.ldif



4. もう一方の LDAP サーバに syncrepl_cn-config.ldif をコピーし上記の ldapmodify コマンドを実行する。

5. 新しいモジュールが追加されたので、すべての replicated servers の slapd daemon は再起動が必要とされる。

sudo /etc/init.d/slapd restart



6. 現在、互いのサーバの configuration database は sync される。backend database も同様に sync が必要とされる。以下をコピーアンドベースとしもうひととの LDIF ファイルを syncrepl_backend.ldif という名前で作成する。

dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcRootDN
olcRootDN: cn=admin,dc=satoshiabe,dc=jp
-
add: olcSyncRepl
olcSyncRepl: rid=003 provider=ldap://172.16.227.129 binddn="cn=admin,dc=satoshiabe,dc=jp"
bindmethod=simple credentials=secret searchbase="dc=satoshiabe,dc=jp" type=refreshOnly
interval=00:00:00:10 retry="5 5 300 5" timeout=1
olcSyncRepl: rid=004 provider=ldap://172.16.227.130 binddn="cn=admin,dc=satoshiabe,dc=jp"
bindmethod=simple credentials=secret searchbase="dc=satoshiabe,dc=jp" type=refreshOnly
interval=00:00:00:10 retry="5 5 300 5" timeout=1
-
add: olcMirrorMode
olcMirrorMode: TRUE

dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov


7. 前回の LDIF ファイルのようにファイルを編集する。


  • searchbase="dc=satoshiabe,dc=jp" を、自分の directory's searchbase に変更する。

  • もし異なる admin ユーザを使用しているなら binddn="cn=admin,dc=satoshiabe,dc=jp" を変更する。

  • credentials=secret を自分の admin パスワードに変更する。



8. LDIF ファイルを追加する。

ldapmodify -x -D cn=admin,cn=config -W -f syncrepl_backend.ldif



サーバの configuration は既に同期されているため、もう一方のサーバに LDIF ファイルのコピーを必要としない。現在この configuration と backend databases は、他のサーバに同期される。必要ならば、追加のサーバを ldapmodify utility を使用して追加できる。“Configuration” セクションで詳細を確認できる。デフォルトで slapd daemon は、/var/log/syslog にログを送信する。





Setting up ACL



// TODO :





TLS and SSL



// TODO :





LDAP Authentication



Once you have a working LDAP server, the auth-client-config and libnss-ldap packages take the pain out of configuring an Ubuntu client to authenticate using LDAP.
これらのパケージをインストールするために、ターミナルプロンプトに入力する :

sudo apt-get install libnss-ldap



使用する LDAP server の URI を指定する。画面に ldapi:/// と入力されているが、これを ldap://127.0.0.1/ と指定しておく。

続いて、LDAP search base の distinguished name を入力する。これを dc=satoshiabe,dc=jp

続いて ldapns により使用される LDAP のバージョンを選択する。バージョン 3 を選択する。

続いて、パスワードユーティリティに pam - local なパスワードを変更するように振る舞う - を使用するか、を選択する。もし、/etc を NFS で mount しているなら NO を選択する。今回、YES を選択する。

続いて、LDAP database にログインを要求するか、を選択する。NO を選択する。

LDAP account for root を指定する。root のパスワードが変更されたとき、このアカウントが使用される。cn=admin,dc=satoshiabe,dc=jp

続いて、ldap-auth-config が LDAP account for root を使用して LDAP directory にログインするときに使用するパスワードを入力する。もし empty password を入力すると、古いパスワードが再利用される。


情報を入力していときに間違ってしまったなら、再度、情報を入力できる。

sudo dpkg-reconfigure ldap-auth-config




結果を /etc/ldap.conf で確認できる。もし、メニューが必要とするオプションをカバーしていないなら、このファイルを編集する。


Now, libnss-ldap は、次のコマンドラインを入力することにより auth-client-config LDAP profile を有効にするよう設定される。

sudo auth-client-config -a -p lac_ldap




  • -a: applies the specified profile.

  • -p: name of the profile to enable, disable, etc.

  • lac_ldap: the auth-client-config profile that is part of the ldap-auth-config package.



これで、 LDAP directory にストアされている user credentials を使用してログインできる。


****************************************
Ubuntu 9.04 の場合、ここで BUG らしき状況に遭遇する。
Bug #295008 in ldap-auth-client (Ubuntu): “Running "auth-client-config -p lac_ldap" gives error (2)”

回避するための手順を記載する。まず、事象から記載する。

% sudo auth-client-config -a -p lac_ldap
[sudo] password for satoshiabe:
Error in updating the file: 'pam_account' not found
--
Errors found. Aborting (no changes made)
$

というように、auth-client-config を実行するとエラーが発生してしまう。

次のコマンドを実行し、

$ sudo auth-client-config -t nss -p lac_ldap

続いて、次のコマンドを実行する。

$ sudo pam-auth-update ldap
PAM profiles to enable:

[*] Unix authentication
[*] LDAP Authentication
[*] ConsoleKit Session Management
****************************************


You should now be able to login using user credentials stored in the LDAP directory.





User and Group Management



ldap-utils package は、複数のユーティリティから構成され、ディレクトリをマネージするが、長い文字列のオプションを必要とし、使用する負担となり得る。ldapscripts package に、簡単に LDAP ユーザとグループをマネージするための configurable script が含まれる。そのパッケージをインストールするために、ターミナルに次のように入力する。

sudo apt-get install ldapscripts



次に /etc/ldapscripts/ldapscripts.conf ファイルを編集する。以下の行を、環境に適用するよう uncommenting または変更する。

SERVER=localhost
BINDDN='cn=admin,dc=satoshiabe,dc=jp'
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
SUFFIX='dc=satoshiabe,dc=jp'
GSUFFIX='ou=Groups'
USUFFIX='ou=People'
MSUFFIX='ou=Computers'
GIDSTART=10000
UIDSTART=10000
MIDSTART=10000



ldapscripts.passwd ファイルを作成して、ディレクトリへの認証されたアクセスを許可する。

sudo sh -c "echo -n 'secret' > /etc/ldapscripts/ldapscripts.passwd"
sudo chmod 400 /etc/ldapscripts/ldapscripts.passwd



:: Note : "secret" を実際のパスワード - LDAP admin user の - にリプレースする

さて ldapscripts を、ディレクトリをマネージする助けとするよう準備した。どのように scripts を使用するか、いくつか例を挙げる。


  • 新しいユーザを作成する


  • sudo ldapadduser george example



    これは、uid が george で、ユーザのプライマリグループ (gid) が example のユーザを作成する。

  • Change a user's password


  • sudo ldapsetpasswd george
    Changing password for user uid=george,ou=People,dc=example,dc=com
    New Password:
    New Password (verify):



  • Delete a user


  • sudo ldapdeleteuser george



  • Add a group


  • sudo ldapaddgroup qa



  • Delete a group


  • sudo ldapdeletegroup qa



  • Add a user to a group


  • sudo ldapaddusertogroup george qa



  • Remove a user from a group


  • sudo ldapdeleteuserfromgroup george qa



  • ldapmodifyuser script は、ユーザ属性の追加や削除や変更を許可する。このスクリプトは ldapmodify utility と同じ syntax を使用する。たとえば


  • sudo ldapmodifyuser george
    # About to modify the following entry :
    dn: uid=george,ou=People,dc=example,dc=com
    objectClass: account
    objectClass: posixAccount
    cn: george
    uid: george
    uidNumber: 1001
    gidNumber: 1001
    homeDirectory: /home/george
    loginShell: /bin/bash
    gecos: george
    description: User account
    userPassword:: e1NTSEF9eXFsTFcyWlhwWkF1eGUybVdFWHZKRzJVMjFTSG9vcHk=

    # Enter your modifications here, end with CTRL-D.
    dn: uid=george,ou=People,dc=example,dc=com
    replace: gecos
    gecos: George Carlin



  • Another great feature of ldapscripts, is the template system. Templates allow you to customize the attributes of user, group, and machine objectes. For example, to enable the user template edit /etc/ldapscripts/ldapscripts.conf changing:


  • UTEMPLATE="/etc/ldapscripts/ldapadduser.template"



    There are sample templates in the /etc/ldapscripts directory. Copy or rename the ldapadduser.template.sample file to /etc/ldapscripts/ldapadduser.template:

    sudo cp /etc/ldapscripts/ldapadduser.template.sample /etc/ldapscripts/ldapadduser.template



    Edit the new template to add the desired attributes. The following will create new user's as with an objectClass of inetOrgPerson:

    dn: uid=<user>,<usuffix>,<suffix>
    objectClass: inetOrgPerson
    objectClass: posixAccount
    cn: <user>
    sn: <ask>
    uid: <user>
    uidNumber: <uid>
    gidNumber: <gid>
    homeDirectory: <home>
    loginShell: <shell>
    gecos: <user>
    description: User account
    title: Employee



    Notice the <ask> option used for the cn value. Using will configure ldapadduser to prompt you for the attribute value during user creation.


There are more useful scripts in the package, to see a full list enter: dpkg -L ldapscripts | grep bin





Resources



http://www.openldap.org/

OpenLDAP Server

Saturday, July 25, 2009

07/25/2009


  • VMware Server 2 64-bit version on Ubuntu Linux 8.10 desktop 64-bit version に VM として Ubuntu Linux 9.04 server 32-bit version をインストールし、OpenLDAP の試験を実行する環境を整備した。

  • 先日、実行してもエラーが発生していた ldapscripts を正常に実行できた。理由は不明。

  • なんどか強烈な睡魔に襲われて大変だった。疲れている?



How to install VMware Server 2 64-bit version on Ubuntu Linux

------------------------------------------------------------

Preface



ThinkPad T61 にインストールした Ubuntu Linux 8.10 desktop 64-bit version に、VMware Server 2 64-bit version をインストールした。作業を簡単にまとめておく。





------------------------------------------------------------

Installation



まず、いくつかパッケージをインストールする。

- build-essential
- linux-headers-`uname -r`
- xinetd

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential linux-headers-`uname -r` xinetd





上記のパッケージをインストールした後 VMware Server の 64-bit version をインストールする。次のページ :

http://www.vmware.com/products/server/

から対応する TAR フォーマットの VMware Server をダウンロードする。



ダウンロードした後、VMware Server をインストールする。

tar xzvf VMware-server-2.0.1-156745.x86_64.tar.gz
cd vmware-server-distrib/
sudo ./vmware-install.pl



いろいろ質問されるが、基本的に YES (つまり ENTER キーのみ押下する) で大丈夫だろう。自分の場合、Virtual machines のファイルを保存するディレクトリを、デフォルトの

/var/lib/vmware/Virtual Machines

から

/var/lib/vmware/VirtualMachines

に変更した。スペースが含まれていて、気持ち悪すぎるからだ。途中、ライセンスを入力するように要求されるため、VMware Server をダウンロードしたときにページに表示された key を忘れずに。



最後に、次のメッセージが表示されたら終了だ。

The configuration of VMware Server 2.0.1 build-156745 for Linux for this
running kernel completed successfully.


VMware Server をインストールした後、次の URL を Web ブラウザに入力し、ページを表示する。VMware Infrastructure Web Access のログイン画面が表示される。

http://localhost:8222/ui/
or
https://localhost:8333/ui/

デフォルトで、Linux アカウントの root と、root のパスワードを指定しログインする。ただし Ubuntu Linux の場合、root アカウントは無効化されているため、次のコマンドを入力し、root アカウントのパスワードを設定する。

sudo passwd root







------------------------------------------------------------

Known issues



新しく Virtual machine を作成し、64-bit version の ISO イメージを指定してインストールを開始すると """プロセッサが対応していない""" 的なメッセージが表示され、インストールできない。





------------------------------------------------------------

See also



VMware/Server/AMD64 - Community Ubuntu Documentation

Packages I always install in Ubuntu Linux

% sudo apt-get update
% sudo apt-get install \
  ntp ssh build-essential openjdk-6-jdk \
  uim-applet-gnome uim-xim uim-anthy uim-gtk2.0 im-switch \
  subversion mercurial git-core \
  emacs

// VMware Server
% sudo apt-get install \
  linux-headers-`uname -r` xinetd

Friday, July 24, 2009

07/24/2009


  • なんとか作業を完了できた。

  • 91.0 時間だった。




How To Creata A Table From An Existing Table In SQL Server

いつも忘れるのでメモ

SELECT 
  * 
INTO 
  NewTableName 
FROM 
  ExistingTable

Thursday, July 23, 2009

07/23/2009


  • 今日も M さんが体調不良で...

  • って、また社長が来た理由は、それだった。

  • 今日中に終了する予定の仕事を終了できず。



Wednesday, July 22, 2009

07/22/2009


  • 帰りの電車で殺人的な口臭を放つ人が隣に座ったので吐きそうになった(マジで

  • 予定の作業を完了できなかった。

  • 明日、少し早く出社する予定だ。



Tuesday, July 21, 2009

07/21/2009


  • 今日の作業は、5 月分のデータの抽出だった。

  • 20:30 ごろに退社した。

  • 綾瀬に到着したら本降りに...。

  • OpenLDAP のドキュメントを更新した。


Monday, July 20, 2009

07/20/2009


  • 久々にこの blog に技術的なポストを掲載しようと検証を継続している OpenLDAP と SNMP の記事を、なかなか完了できない。





ValueError: unknown locale: UTF-8

$ hg clone ssh://hg@bitbucket.org/satoshiabe/public/
Traceback (most recent call last):
File "/usr/local/bin/hg", line 25, in <module>
mercurial.util.set_binary(fp)
File "/Library/Python/2.5/site-packages/mercurial/demandimport.py", line 75, in __getattribute__
self._load()
File "/Library/Python/2.5/site-packages/mercurial/demandimport.py", line 47, in _load
mod = _origimport(head, globals, locals)
File "/Library/Python/2.5/site-packages/mercurial/util.py", line 93, in <module>
_encoding = locale.getlocale()[1]
File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/locale.py", line 460, in getlocale
return _parse_localename(localename)
File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/locale.py", line 373, in _parse_localename
raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8
$
$ export LC_ALL=en_US.UTF-8
$ export LANG=en_US.UTF-8
$
$ hg clone ssh://hg@bitbucket.org/satoshiabe/public/
destination directory: public
requesting all changes
adding changesets
adding manifests
adding file changes
added 7 changesets with 9 changes to 3 files
updating working directory
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$

Sunday, July 19, 2009

07/19/2009


  • HT-03A を引き取った。





Saturday, July 18, 2009

07/18/2009


  • HT-03A への機種変更を予約した。

  • 明日の 18:00 以降に引き取りできるらしい。

  • 散髪した。

  • OpenLDAP の学習を開始した。


Friday, July 17, 2009

07/17/2009


  • 昼食を、メンバと営業さんと社長とで。

  • 今週ずっと対応していたアフィリエイトの通信プログラムは、いったん中止されることで決定した。

  • 来週から、前回の作業を再開する。



Thursday, July 16, 2009

Wednesday, July 15, 2009

Tuesday, July 14, 2009

07/14/2009


  • 昼すぎに質問したら、やっぱり自分は誤解していたようだ。質問してよかった。

  • 明日の予定は、テストケースの作成と、テスト環境の準備だ。

  • とりあえず今のところ予定どおり。



Monday, July 13, 2009

07/13/2009


  • 寝不足で、まだ頭が働いていない午前中、ホゲっとしていたところで注意されてしまった。

  • 更に手順を間違って、注意されてしまった。




Sunday, July 12, 2009

07/12/2009


  • 月曜日も休みだと思っていたら、来週だった。





Saturday, July 11, 2009

Friday, July 10, 2009

07/10/2009


  • 忘れられぬ日となろう。





Thursday, July 09, 2009

07/09/2009


  • 間違えたまま作業していたようだ。





Wednesday, July 08, 2009

Tuesday, July 07, 2009

07/07/2009


  • 再リリース





Monday, July 06, 2009

07/06/2009


  • リリース





Sunday, July 05, 2009

07/05/2009


  • 外出もせず、まったり自宅で過ごした。





Saturday, July 04, 2009

Friday, July 03, 2009

07/03/2009


  • ソースコードを確認してもらい、おかしい点を発見してもらった。

  • ただ、スケジュール的、かつ、自分のスキル的にすべてを修正できず、コミットしてしまった。

  • 21:30 まで仕事をして、その後、新宿の居酒屋へ移動した。

  • 23:30 ごろまで飲んだ後、駅へ移動した。

  • 人身事故の影響もあったのか、最終の電車の混雑は、久しぶりに激しかった。

Thursday, July 02, 2009

Wednesday, July 01, 2009