サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
yukun.info
目的 Vagrantで作成したVM (Linux [CentOS])にプライベートな固定IPアドレスをVagrantfileを用いて設定する。 背景用途 VMで構築したApache webサーバー用Dockerコンテナの稼働確認としてホストOS側のブラウザからVMに対してHTTPアクセスしたい為。 実行環境 ホストOS側 OS X EI Capitan Vagrant 1.7.4 VM側 CentOS Linux release 7.2.1511 (Core) Vagrantfileの編集 Vagrantfileファイル中程にある「config.vm.network “private_network”〜」の行頭コメントアウトを削除。 # Create a private network, which allows host-only access to the machine # usin
当記事の目的 Hubotというチャットフレームワークを用いたSlack botの開発にDockerを用いる場合の環境構築方法の一例、及び考慮点を記載する。 背景理由 この度、初めてGitHub、Docker Hubを使用してBotの開発をした際に考慮事項が多かった為、その備忘録をつけておきたい為。 作成したBotコード、Dockerイメージ 十数ステップのCoffeescriptコードと、Dockerイメージは下記リンクをご参照。GitHub側には使用方法も簡単に記載している。 GitHub: Docker Hub: https://hub.docker.com/r/yuukun/hubot-xada/ BotのデモGif動画は以下の通り。bot宛てに送出したメッセージが指定のチャンネルに転送されていることを確認できる。 開発環境の構成図 手書きでさっと走り描いたもので読み取り難いかと思う
ホストLinux上でDockerコンテナを用いてWebサーバ等を提供する際、ホストLinux-Dockerコンテナ間でポートの紐付けが必要である。本記事は下記の3パターンのポートの紐付け方法を紹介する。尚、参考にした公式ガイドは記事末尾をご参照。 docker run -pオプション docker run -Pオプション (DockerfileにEXPOSE指定) docker run –expose docker run -pオプション -pオプションで<ホストport>:<コンテナport>を紐付けることができる。 $ docker run -d -p 8080:80 --name web1 nginx ae7fe48f7e2a325f748b95d4d64a6c72cd979f6b23c6b95f7709f97d013ab1f0 $ docker ps -l CONTAINER ID
$ docker stop $(docker ps -q) コンテナの一括削除 Docker管理のコンテナで停止中(stop)のコンテナを一括削除するコマンドは下記の通り。 $ docker rm $(docker ps -aq) 参考) 公式ドキュメント (rm) : Docker Docs – rm docker ps の -qオプションはコンテナIDのみ出力するオプション。 Docker – Docs – ps イメージの一括削除 イメージの場合は下記の通り。($で括る書き方でも良い。) $ docker rmi `docker images -aq` Dockerfileの修正・ビルドを繰り返している場合、中間イメージが肥大している場合があり、ゴミ掃除の際に使用する。 docker rmコマンドの使用例 $ docker ps -a CONTAINER ID IMAGE COMMA
例えば、Webアプリケーションを作成する際のDocker構成の一例としてデータベース(DB)機能のみのコンテナを起動し、WebアプリコンテナからDBコンテナにアクセスする際の方法として、ホストネットワークIPへバインディングせずに、docker runサブコマンドのlinkオプションを活用する方法がある。本記事は公式mysqlサーバコンテナを作成しlinkオプションで起動したコンテナからサーバへ接続する手法を紹介する。尚、参考にした公式ドキュメントリンクは記事末尾を参照すること。また、使用docker engine versionは1.9.1。 linkオプションの機能 仮にリンクされる側のコンテナ(DBサーバ等)をsource、リンクする側のコンテナ(Webアプリ、クライアント等)をrecipientと置いた時、linkオプションがrecipientコンテナに提供する機能は下記の通り。
首題の事象の対処例を記載。 事象 Amazon.co.jpのオーナーライブラリから電子書籍のダウンロードを試みたところ下図のエラーメッセージが出力され、電子書籍をダウンロードできない。 原因 Kindle Customer Serviceへ照会したところ、過去にAmazon.com版のKindleを使用後、現在Amazon.co.jpのアカウントにマージしたアカウントに本事象が発生する場合があるとのこと。(根本原因は不明) 対応 下記の手順で解決できた。 Amazon.comへ購入先サイトの変更 http://www.amazon.co.jp/mycdの「コンテンツと端末の管理」にアクセス。 設定タブを開く。 居住国設定から「変更」をクリックし、「お住まいの国からの購入に対応しているAmazonサイトの詳細については、ここをクリックしてください。」の「ここ」をクリック。 「Amazon.c
事象 下記の通り2行目の処理でセグメンテーションエラーとなる。 $ python Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> str1 = 'hello.doc' >>> print str1 Segmentation fault: 11 発生環境 Mac OS 10.9.4 (Mavericks), Python 2.7.2 以下の通り、readline.so を readline.so.disabled にリネームする。 $ which python /Libr
Microsoft Office Wordファイルの検索クローラをPythonで作成する際、表題の通り、*.docからテキストデータに変換する必要がある。本記事ではwin32comライブラリを用いてPythonスクリプトからWordファイルのテキストデータを抽出するスクリプトを紹介する。 (尚、世には多数のOfficeファイルコンバーターが有るので、このソースを使うことが最適とは限らない) ソースコード エラーハンドリングは必要最低限である為、扱うファイル特性に応じて追加が必要な場合もある。 # coding: Shift_JIS import win32com.client def word2text(file_path): text = "" doc = win32com.client.gencache.EnsureDispatch("Word.Application") doc.Vi
以前というかこの頃Javaで簡単な分散処理サーバ・クライアントシステムのモデルを実装中にこのjava.io.StreamCorruptedExceptionという例外が発生。 StreamCorruptedExceptionの発生原因 結論から言えば、恐らく実行中のスレッドの数がマシンスペックに対して多すぎたのではないかと推定(推定どまり)。 サーバが複数のクライアントを受け付けるので、クライアントのソケット接続(accept時)毎にスレッドを生成する方法を採った。この時はブロッキング型のモデル(この頃ノンブロッキング型は知らなかった)。 例外の発生状況はサーバプログラムをテスト動作時、絶えず約1000クライアントからのリクエストを受け付け、かつレスポンス等を行った場合。なお送受信データはシリアライズされたオブジェクトで、サイズは平均5KB。その時テストマシンで走らせたスレッド数が約500
本記事はWAF (Web Application Firewall)ソフトでApacheモジュールの一つである、ModSecurityのインストール及び簡易的な設定方法を記載する。本運用を考慮した設定は本記事では割愛するが、必要な参考リンクは適時記載するので参照されたし。 概要 (全体像) ModSecurity:TrustWave社がGPLv2 ライセンスのもと提供しているOSSのWAF。 ModSecurity: Open Source Web Application Firewall 下記の資料にWAFの概要からModSecurityの導入〜運用までの検討ポイントが記載されている。 IPA 独立行政法人 情報処理推進機構:Web Application Firewall 読本 OWASP Core Rule Set:OWASP(Open Web Application Securit
前回の記事にてメールサーバを構築。本記事は当該サーバに対する動作確認の手法や良くあるエラーの対処例を記載する。 nmapコマンドによるポート開放確認 Postfix, Dovecotの動作確認の前に、そもそもサービスのポートが開放されているかをサーバの外部ネットワークからnmapコマンドを用いて確認する。(nmap自体は公式サイトより適切なモジュールをダウンロード・インストールすればWindows, Mac, LinuxのいずれのOSでも使用可能。) その実行結果例は下記の通り。nmapコマンドはデフォルトでwell knownポートに対してスキャンをかける。smtp, pop3, imap, imaps, pop3s等が、openであればOK。勿論、dovecot.confのprotocolsディレクティブ設定において、pop3, imapを指定してなければ当該ポートはopenとはならな
本記事はVMware Fusion上の仮想(ゲスト)マシン上でサーバサービスを起動してホスト(Mac)側から常時固定IPでアクセスしたい場合や、Retina Displayを活用するべくホスト側の対応コンソールを用いてRetina非対応のゲストマシンに手軽にsshログインしたい場合に有用なテクニック。 IPアドレスの固定化の手段は2通りあり、一つはゲスト側で固定IPを設定する手順、二つめはホスト側・VMware側のネットワーク設定にてゲスト側のIPを固定化する手順。本記事は後者の手法をゲストのDebian Linuxを用いて紹介。(当手順は対象がWindows系であっても使用可能) VMware Fusion 上の設定 対象マシンのNetwork Adapter設定を開きInternet Sharing の Share with my Macラジオボタンを選択。 続いて、同画面下部のAdv
事象 Linux Debianで/etc/apt/sources.listに外部のリポジトリを指定した後にapt-get updateコマンドを実行したところ、下記のGPG errorが出力されupdateできない。 # apt-get update Get:1 http://ftp.riken.jp squeeze-updates Release.gpg [836 B] <中略> Fetched 7,643 B in 0s (7,644 B/s) Reading package lists... Done W: GPG error: http://ftp.jp.debian.org wheezy Release: The following signatures couldn't be verified because the public key is not available: N
先日(といってもずいぶん前だが)VMwareからインストールしたDebianでapt-getによるVimパッケージのインストールを試みたところ、DVDの挿入を促すメッセージが出力された。 root@debian:~# apt-get install vim Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: vim-runtime Suggested packages: ctags vim-doc vim-scripts The following NEW packages will be installed: vim vim-runtime 0 upgraded, 2
iptablesのパケットのフィルタチェインの処理フローを復習したので下記に纏める。基本技術なので参考文献が充実しており今更感があるが、手を動かしておかないと忘れそう。。当記事の後続はiptablesコマンドによるルールの設定やnmapによるスキャン検査を記載予定。尚、参考サイトはいつも通り記事末尾に記載(公式ドキュメントで理解を深める or iptableって?方向け)。
Linuxシステム内のプログラムのパーミッションににSUID(set user-ID)ビットもしくはSGID(set group-ID)ビットが設定されていると、プログラムの実行ユーザの権限ではなく、プログラムの所有ユーザ、グループの権限で実行される。(IBM i の借用権限みたいなものかな)例として、ユーザのパスワード変更コマンドであるpasswdコマンドがある。 # ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 30768 Feb 22 2012 /usr/bin/passwd passwdコマンドはその他一般ユーザから実行可能であり、かつ下記の/etc/passwdファイルを編集する権限も必要である為、SUIDビットを立てている。 # ls -l /etc/passwd -rw-r--r--. 1 root root 1686 Jun 2
LPIC Level3の学習の一環で仮想CentOS v6.4にOpenLDAP 2.4系をインストールした際の手順を簡単に纏めておく。2.2系とは手順が少し異なったので、その点戸惑った。参考サイトは記事末尾に紹介。 事前に対象のOS環境に既にpkgが導入されているかどうかを確認する。 # yum list installed '*ldap*' Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * extras: mirror.neu.edu.cn * updates: centos.ustc.edu.cn Installed Packages apr-util-ldap.x86_6
先日tcpdumpの復習をしたので、備忘録として使い方を下記にまとめておく。 tcpdumpとは tcpdumpはほとんどのLinuxディストリビューション、及びWindows(Windowsバージョンではwindumpという)で使用できるパケットキャプチャー、基本的なフィルタリングが出来るコマンドベースのFreewareツール。sniffer(スニッファー)ツールにカテゴライズされ、スニッフィングの対象プロトコルはIP, TCP, UDP, ICMP。 (参考) Wikipedia : tcpdump – Wikipedia, the free encyclopedia 公式サイト tcpdump : TCPDUMP/LIBPCAP public repository windump : WinDump – Home 実行環境 今回はホストMac OSのVMware fusion上のBa
2011頃にさくらVPSに構築したRedmine v1.x.xをRedmine v2.3.x系にアップグレードしようと試みたが、DBのマイグレーションが手間なのと、Subversionからのソースコードダウンロードだと今後のupdateがかなり効率化できる為、この際再インストールする事にした。対象環境はCentOS v5.9だが作業中に幾つか引っかかったところがあるので、今後の備忘録も兼ねて下記に纏めておく。尚、作業に際しては原則下記の公式ブログに記載の手法で進めていく。 参考:Redmine 2.3をCentOS 6.4にインストールする手順 | Redmine.JP Blog 以降はそれ以外の作業や作業中のエラー、留意点、対処法など。 そもそも既存環境のアンインストールは? DB上のRedmineの全テーブルと/var/lib/redmineディレクトリ、Apache側の設定、シンボリ
LinuxにiptablesのNAT設定とtcコマンドでネットワーク遅延環境を模擬的に構築してみたので、その手順を以下に記載する。欲を言えばクライント、サーバ側はStatic Routeに従ってルーティング出来るようルータールールの設定をしたかったが、リソース(主に時間)の関係上割愛。 今回はMacのVMWare fusionで下記の3環境を用意した。左下のCentOS(ルーター部)以外は特にLinuxでなくとも良い。 192.168.11.8 +------------------+ | Kali Linux |-----+ +------------------+ | +------------------+ | +-----------+ | CentOS (iptables)|-----+-------| BackTrack | +------------------+ eth0
MAMP付属のMySQLではなくMac OSに直にMySQLをインストールする場合の手順を以下にまとめておく。 ダウンロードするもの 以下のサイトよりMySQLをダウンロードする。ダウンロード時にはアカウントの登録を求められるが特に費用は掛からない。 MySQL :: Download MySQL Community Server 私の環境はMBA 64bitである為、<Mac OS X ver. XX.X (x86, 64-bit), DMG Archive>ファイルをダウンロードした。 インストールするもの ダウンロードしたファイル(mysql-X.X.XX-osxXX.X-x86_64.dmg)をマウントした後、下記の順番でパッケージとパネルをインストールする。 mysql-X.X.XX-osxXX.X-x86_64.pkg MySQLStartupItem.pkg MySQL.pr
ソースコード #include // for time() #include // for srand(), rand() #include using namespace std; #define MIN 10 #define MAX 21 int main() { srand(time(NULL)); // 現在時刻を乱数の種の設定 int lucky = MIN + rand() % (MAX – MIN); // MIN以上MAX未満の乱数を生成 cout < < "生成した乱数は" << lucky << "です。n"; for (int i = 0; i< 100; i++) { // 100個生成 cout << MIN + rand() % (MAX - MIN) << " "; } return 0; } [/cpp] 実行結果 C:cpp> g++ rand01.cpp
Mac上でのPHP開発環境のセットアップとCLIデバッグ環境の構築で幾つか躓いたところがあったので、備忘録もかねて下記にまとめておく。 MAMP+Eclipse PDTの入手 以下のサイトよりそれぞれダウンロードしインストールする。 PHP Development Tools (PDT) – Downloads MAMP: Mac, Apache, MySQL, PHP php.iniの設定 Xdebugを使用するための設定。MAMP上のphp.iniに以下の内容を追記。zend_extensionの項目はコメント;を外すだけで良い。(パス自体はバージョン依存なので。) [xdebug] zend_extension="/Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/no-debug-non-zts-20100525/xdebu
PythonでWindowsのアプリ・ファイルを扱う際に必要なwin32comモジュールのインストール方法を以下の通り。 配布元へアクセス:Win32 Extensions for Python ダウンロードエリアに移動:Python for Windows extensions – Browse Files at SourceForge.net ページ中のpywin32のリンクを開き、最新ビルドリンクを開く Pythonの使用環境に合わせてダウンロードパッケージを選択(32bit or 64bitはpythonのプロンプト実行時に確認できる) 32bitの例: C:\Users\yukun>python Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32 Type "h
インストール方法自体は配布元に記載の方法で実施。 参考サイト Beautiful Soup: We called him Tortoise because he taught us. Beautiful Soup Documentation — Beautiful Soup 4.0.0 documentation The current release is Beautiful Soup 4.1.3 (August 20, 2012). You can install it with pip install beautifulsoup4 or easy_install beautifulsoup4. It’s also available as the python-beautifulsoup4 package in recent versions of Debian and Ubuntu
COM(Component Object Model)を使用してWordファイル内のテキストをテキストファイルへ抽出・変換するスクリプト。 ソースコード # coding: utf-8 import fnmatch, os, sys, win32com.client if __name__ == '__main__': wa = win32com.client.gencache.EnsureDispatch("Word.Application") try: for path, dirs, files in os.walk(sys.argv[1]): # コマンドラインより探索ディレクトリpathを取得 for filename in files: if not fnmatch.fnmatch(filename, "*.doc"): continue # wordファイルの拡張子かをパターン
数字文字列とそれ以外の文字列を判別する条件式は以下の通り。 スクリプト #!/bin/sh if expr "$1" : '[0-9]*' > /dev/null ; then echo "数字です" else echo "数字以外です" fi 実行結果 $ ./if_numstr.sh 123 数字です $ ./if_numstr.sh abc 数字以外です 内容 exprで正規表現を用いて数値を判定。exprは内部コード以外にも標準出力にも結果を返すので、不要なそれは/dev/nullへリダイレクトする。
先日MacBook Airを購入したが、Eclipse+PyDevのセットアップに考慮が必要だった為、インストール方法を紹介する。 発端 Macに標準のPythonにPyDevでのPythonインタプリターの設定を試みたところ、下記のエラーメッセージが発生。 ・エラー画面(Error: Python stdlib not found or stdlib found without .py files.) 内容としては、標準のパスには必要なファイルがない〜的なもの。検索すると、同事象は下記のフォーラムで既に上がっていたので参考にさせて頂いた。 ・PyDev Eclipse Python interpreters Error: stdlib not found – Stack Overflow 対処法 結論から言うと、Mac標準のものではなく、Python.orgのPythonを使用することで
設置環境はFedoraを想定。 注:ソースからインストールした場合や他の環境だと一部ファイルのパスが違うところがある。 機会があれば今後も少しずつ書き足し・修正していく。 起動 # /etc/rc.d/init.d/httpd start または、 # service httpd start 終了 # /etc/rc.d/init.d/httpd stop または、 # service httpd stop 再起動 # /etc/rc.d/init.d/httpd restart または、 # service httpd restart 自動起動に設定 # chkconfig httpd on 自動起動の確認(Run level 3:on) # chkconfig –list httpd 設定の反映 # /etc/rc.d/init.d/httpd reload ディレクトリの所有者の変更
次のページ
このページを最初にブックマークしてみませんか?
『Yukun's Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く