多様な領域のアイデアワークの設計をしています。アイデア創出に関してお困りのことがあれば、下の黒い四角(公式サイトのお問い合わせページ)から、お気軽にご相談ください。
多様な領域のアイデアワークの設計をしています。アイデア創出に関してお困りのことがあれば、下の黒い四角(公式サイトのお問い合わせページ)から、お気軽にご相談ください。
今動いているサービスが (INTERNET)-[varnish]-[Starman/Catalyst] というような構成でvarnishでCSSや画像なんかの静的ファイルをキャッシュしているんだけど、 現状デプロイしたけどキャッシュが更新されなくて見えてる画像が新しくなってないよって現象がある。 一応varnishを再起動すればキャッシュはクリアされるけど、 一つのvarnishの下に複数のサービスがぶら下がっているので、 一つのサービスのデプロイのためにそれ以外の全てのサービスのキャッシュをクリアするのも大変微妙。 で、そういえば、先日Railsのimage_tagを真似て作ってみたMyApp::View::Plugin::Tsを使って画像のURLなどに更新時刻を付加すれば、 varnishがそこをみて新しくキャッシュしてくれるようになるんじゃないか?と思った。 そのためにはvarnis
同僚の@papandaからの依頼とあれば断わる理由はないので、DevLOVE HangarFlight - Snow Barrage -で、Jenkinsを中心としたCIとそのインフラについてお話ししてきました。 Jenkins勉強会で発表した内容に、それから半年の動きを足した内容となっています。 主たるコミュニケーションツールであるIRCを中心として開発者が開発に集中できること 有限のサーバリソースをどう使って快適なCI環境を手にいれるか ということが、ここ1年くらいホットなトピックだったので、そのために私たちがやっている取り組みをお話させていただきました。 何人かの方から、JenkinsとIRCと会話するのは面白い、GanetiやTravisは知らなかったけど興味が湧いたという声を頂いて、発表してよかったなぁと思いました。 また、懇親会では、Vundleの記事やWeb+DBの特集がよか
(Last Updated On: 2018年8月13日)PostgreSQL Advent Calender用のエントリです。 エスケープ処理が必要なのにエスケープ用のAPIが無い状態は良くありません。エスケープしないために動かないのはまだ良い方です。エスケープが必要なのにエ スケープをしなくても動いてしまい、セキュリティ上の問題となる場合もあります。全てのアプリケーション・ライブラリはエスケープが必要なデータに対するAPIを持っておくべき です。今回はPostgreSQL 9.0から追加されたエスケープ関数を紹介します。 PostgreSQL使い始めて最初の頃に気づくのはuserなどの予約語がフィールド名に使えない事かも知れません。例えば、 yohgaki@[local] test=# CREATE TABLE user (name text); ERROR: syntax erro
前回の続きです。やっと完成です。 ざっくりとした考え方(毎回) GROUP BY は集約するので、結果が(集約キーを出力すれば)一意になる。つまり、出力される結果が一意になるまで集約される。 しかし、OLAP(分析)関数は、SELECTされた結果を区切って処理する。そのため、レコード数に変化はない。 集約する → GROUP BY 区切る → PARTITION BY となる。これだけが分かっていれば実は簡単です。 SQLの完成。 拡大する 前回説明したように、OLAP(分析)関数を使ってイメージの通り順に考えて行くと、サブクエリーの中には不要なものも入っていますが、以下の様なSQLが完成します。 SELECT 納品書番号, 行, 商品ID, 単価, 数量, 消費税率 , 明細計, 納品書合計金額, 納品書消費税額 , CASE WHEN ABS(消費税誤差) >= 金額の多い順 THEN
今日は blockdiag の class 機能を紹介します。 class 機能も最近できたばかりの機能で、シンプルでわかりやすい機能が多い blockdiag の中で 少し変わった位置にある機能です。 blockdiag ではノードやエッジ(矢印)、グループなどを書く際に、 label や color などの属性を設定しながら図を作成しています。 class 機能はあらかじめ属性をクラスとしてまとめておいて、 それを各要素に適用するための仕組みです。 CSS の class 定義と似た考え方を持っています。 例として次のような図を考えてみます。今日はサンプルとして nwdiag を利用しています。 ホスト数が 8台あるネットワークを模した図です。 nwdiag { network dmz { router [shape = cisco.router]; server01 [shape =
すっかり使い慣れたGoogle Chromeを使う。 # vim /etc/yum.repos.d/google.repo x86, x86_64を自分の環境合わせてどちらかを設定する。 [google] name=Google - x86 baseurl=http://dl.google.com/linux/rpm/stable/i386 enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub [google64] name=Google - x86_64 baseurl=http://dl.google.com/linux/rpm/stable/x86_64 enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/l
使い方のメモ 試したバージョン # qemu-img -h qemu-img version 0.14.0, Copyright (c) 2004-2008 Fabrice Bellard usage: qemu-img command [command options] QEMU disk image utility # qemu-img create -f qcow2 -o options filename size filenameで指定された名前で、sizeで指定された容量のqcow2イメージを作成する。 未使用状態では数MBで、OSからからの使用量に合わせて徐々に拡張される。 -o options で指定できるオプションは以下、 "backing_file" File name of a base image (see create subcommand) "backing_fm
サーバ上でKVMを使う場合のネットワークはBridgeデバイスを使うのが一般的だがノートPCだとそうも行かない。 ブリッジデバイス(brX)はNetwork-Managerの制御を受け付けないので、物理NICやWLANをブリッジ化してしまうと持ち歩き前提のノートPCは非常に不便になってしまう。 なので標準のvirbr0をうまく使って仮想環境を作るのがおすすめ。 以下、よく使ってる設定ファイル /etc/libvirt/qemu/networks/default.xml <network> <name>default</name> <uuid>a388f764-42b0-b80e-bbe4-53dfc71a5939</uuid> <forward mode='nat'/> <bridge name='virbr0' stp='on' delay='0' /> <ip address='192
► 2020 (1) ► 2月 (1) ► 2019 (2) ► 11月 (1) ► 10月 (1) ► 2018 (4) ► 12月 (2) ► 11月 (1) ► 2月 (1) ► 2017 (1) ► 12月 (1) ► 2016 (7) ► 12月 (1) ► 9月 (2) ► 7月 (1) ► 6月 (1) ► 2月 (1) ► 1月 (1) ► 2015 (3) ► 12月 (1) ► 11月 (2) ► 2014 (28) ► 12月 (3) ► 9月 (6) ► 8月 (2) ► 7月 (1) ► 5月 (12) ► 4月 (2) ► 2月 (2) ► 2013 (27) ► 12月 (4) ► 7月 (3) ► 6月 (3) ► 4月 (2) ► 3月 (2) ► 2月 (3) ► 1月 (10) ► 2012 (98) ► 12月 (10) ► 10月 (7) ► 9月
大きくは変わってないけど、少しだけ変わった事があるのでメモ。 カーネルモジュールのロード方法に注意。 今までは /etc/modprobe.conf に 「alias bond0 bonding」みたいに書いてたけど、RHEL6からは/etc/modprobe.d/以下にファイルを作成してそこに記述するようになってる。 example # vim /etc/modprobe.d/bonding.conf alias bond0 bonding このファイルでBONDING_OPTSは指定してはいけない(マニュアルにNG記載されている その他は大きくは変わらない。 ifcfg-bond0 DEVICE=bond0 IPADDR=192.168.1.1 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no BONDING_OPTS
検証や勉強で仮想マシンを複数作って異なるネットワークセグメントに配置したい時に使う。 RHCE/RHCSA(RHCT)の勉強するときに便利。 libvirt(virt-manager)は起動時にOSのルーティングを有効化するが、作成する仮想ネットワーク(virbrX)が他の仮想ネットワークとルーティングすることを禁止している。 # sysctl -a |grep ip_forward net.ipv4.ip_forward = 1 隔離された2つのネットワークを以下のように作成する(virt-managerから作成) virbr1 <network> <name>trust</name> <uuid>9929b191-4e3e-42e0-9dd4-00f1dea86715</uuid> <bridge name='virbr1' stp='on' delay='0' /> <ip addr
■ファイルの属性 u user g group o others ■ファイルの場合 1 x ファイルの実行が可能 2 w ファイルへの書込みが可能 4 r ファイルの読取りが可能 ■ディレクトリの場合 1 x ディレクトリへの移動が可能 2 w ディレクトリへのファイル・ディレクトリの作成が可能 4 r ディレクトリの内容表示が可能 0は権限無し。 現場で詳細を忘れた場合は以下で思い出す。 # man chmod # chmod 124 test こういう指定も可能(ugo +- rwx の組合せ) # chmod u+x file # chmod g-r file 以下が存在する。chmodでは4桁目として設定。 1000 sticky 2000 setgid 4000 setuid ■sticky 所有ユーザのみがファイルを削除できるようになる。主に/tmpのような777権限を持つ誰で
セキュリティ問題が立て続けに起こって物騒な世の中になったものです。セキュリティは基本的な技術対策を施すことでほぼ対応できるので面倒ですがきっちり対応することが重要です。 セキュリティ対策の基本的方針としては、 ----------------------------------- ◆攻撃対象にならないようにする 不要なデーモンを起動しない ソフトウェアの種類・バージョンを隠蔽する 特定パターンのアクセスを禁止する(IPS等) ◆侵入経路減らす ファイアーウォールによる防御(iptables等) セキュリティパッチの定期的な適用(RHN等) ◆侵入された事をいち早く検知する 不正侵入検知(IDS等) ログ監視(いろいろ) ファイル変更監視(AIDE等) ◆侵入されても操作できる範囲を限定し被害拡大を防ぐ 権限の限定化(SELinux等) ---------------------------
RHEL6はコピーするだけでOK。 メディアのマウント [root@localhost ~]# mount /dev/cdrom /media パッケージのコピー先を作成 [root@localhost ~]# mkdir -p /var/yum/RHEL6.0 [root@localhost ~]# cd /var/yum/RHEL6.0 ローカルにrpmをコピー(DVDの中身を全部コピー) [root@localhost RHEL6.0]# cp -Rp /media/* . リポジトリ定義ファイルを作成 [root@localhost yum.repos.d]# vim /etc/yum.repos.d/dvd.repo [Server] name=RHEL6 Base baseurl=file:///var/yum/RHEL6.0/Server enabled=1 gpgcheck
こちらも参考にしてみてください。 --------------------------------------------- 参考>> 仮想環境を使って簡単にRHEL6のiscsiマルチパスを検証する --------------------------------------------- Linux で iSCSI を使う方法と、マルチパス化する方法について記載する。 クライアント:RedHat Enterprise Linux 5.3 ストレージ:Solaris10 ZFS iSCSI テストするSolaris10環境がNIC1枚しかないので少々工夫する。 >ifconfig -a lo0: flags=2001000849 mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 e1000g0: flags=1000843 mtu 1500
デフォルトインストールされたRHEL6にはXがインストールされない。 参照>> RHEL6 (2)インストール後の注意点(SELinux/iptables/X) Oracleやらサーバ上での動作確認用にブラウザが使いたいこともあるだろうから、 常時起動はしないまでも、startxでXを起動できるようにしたいのが人情だ。 ってことで、RHELインストール時に、基本サーバ + X/GNOMEをインストールする。 ここまでは問題ない。インストール時にパッケージのカスタマイズを選ぶだけ。 Xをデフォルト起動しなくするのも簡単。 init ランレベルを5 → 3 に変更するだけ。 # vi /etc/inittab ------------------- id:3:initdefault: ------------------- ここまでは特にRHEL5と大差ない。 ここからが重要な注意事項。 Xを
5まではifcfg-ethX内のHWADDRやmodprobe.confなんか使ってethXの順番をいじってたが、6以降は全てudev一本で制御できるようになっている(5でもudevを使ってif順序を制御することは可能。 udevでのネットワーク設定は以下にまとめられている。 /etc/udev/rules.d/70-persistent-net.rules # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:c8:16:8d", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" 下線部部分でMACアドレスとデバイス名の関連付けを行っている。 NAME=の部分は好きに設定できるのでこんな事
12日目の記事をかいてからまだそんなに時間が経っていませんが、 勢いで 13日目の記事も作ってしまいました。 今日は Jenkins + bitbucket.org + Sphinx の組み合わせで、Web サイトを自動的に公開する仕組みをご紹介します。 この仕組みは実際に blockdiag.com の更新に使われているもので、僕自身もこの仕組みによってかなり楽できているものです。 一応用語説明しておきます。 Jenkins Java で作られた CI (継続的インテグレーションツール) 今回は Sphinx ドキュメントの更新を検知して、勝手にビルド・公開してくれるために使う 以前は Hudson って名前だった bitbucket.org バージョン管理システム Mercurial のホスティングサービス。git における github みたいなもの。 Sphinx 素敵なドキュメン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く