My Tracking

My Tracking

記憶力の低下が気になるアラフォー男の備忘録

CentOS7.3にemacsをインストールする。

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、REST APIを操作するpython_redmineを利用するための環境設定の続きで、 コーディングする際のエディタである「emacs-24」をインストールする

なお、「emacs-24」のソースコードが「emacs-24.4.tar.gz」あらかじめ、 ダウンロードされているものとして、以降を記載する。

目次

OS環境情報

  • 作業開始時点の環境は、下記のOSを最小インストールした状態から開始
[root@docker ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@docker ~]#

gccコンパイラのインストールする

[root@docker emacs-24.4]# yum install gcc

コンパイル時「`tputs' was not found in any library.というエラーが出た」ので、その対処

後述のemacsコンパイル時、 tputs' was not found in any library.と「tputs' was not found in any library.というエラーが出た」ので、その対処をあらかじめしておく。

[root@docker ~]#wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz
[root@docker ~]#tar -zxvf ncurses-5.9.tar.gz
[root@docker ~]#cd ncurses-5.9
[root@docker ~]#./configure
[root@docker ~]#make
[root@docker ~]#make install

必須ではないと思うが、「Development Tools」のyumパッケージをインストールしておく

[root@docker emacs-24.4]# yum groupinstall -y "Development Tools"

emacsコンパイル&インストール

今回は、OS自体、X-Windowsがインストールされていないテキストモード環境のため、「 --without-x」でインストールする

[root@docker src]# tar zxvf emacs-24.4.tar.gz
[root@docker emacs-24.4]# ./configure --without-x
[root@docker emacs-24.4]# make
[root@docker emacs-24.4]# make install

emacsの初期設定(init.el)

emacsの設定は、下記書籍を参考にした設定(init.el)をずっと、利用してきたのでその設定を移行する。

[改訂新版]Emacs実践入門―思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

[改訂新版]Emacs実践入門―思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

pythonモード時ののタブ幅

上記の書籍以外の設定としては、 pythonモードのタブ幅を設定しておく。

;;python-mode(タブ幅4)
(add-hook 'python-mode-hook
          '(lambda()
             (setq indent-tabs-mode t)
             (setq indent-level 4)
             (setq python-indent 4)
                      (setq tab-width 4)))

emacs起動

emacsを起動し、pythonのコードを開く

Pythonソースコードのインデントを深くor浅くする技

地味に、よく使う技。備忘録

EmacsでPythonソースコードのインデントを深くor浅くする技 | 三鷹台でひきこもるプログラマの日記

  • C-c > (インデント深く)
  • C-c <(インデント浅く)

【Redmine3.3】python_redmineを利用するための環境を整備する

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、REST APIを操作するpython_redmineを利用するための環境設定。

目次

OS環境情報

  • 作業開始時点の環境は、下記のOSを最小インストールした状態から開始
[root@docker ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@docker ~]#

pythonのバージョン

  • 既に以下のpythonがインストーされているものとする。
[root@docker ~]# python -V
Python 2.7.5
[root@docker ~]#

pipのインストール

  • 以下で、pipをインストールする。
[root@docker ~]# curl -kL https://bootstrap.pypa.io/get-pip.py | python
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1558k  100 1558k    0     0  1638k      0 --:--:-- --:--:-- --:--:-- 1638k
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |????????????????????????????????| 1.3MB 360kB/s
Collecting setuptools
  Downloading setuptools-36.6.0-py2.py3-none-any.whl (481kB)
    100% |????????????????????????????????| 481kB 729kB/s
Collecting wheel
  Downloading wheel-0.30.0-py2.py3-none-any.whl (49kB)
    100% |????????????????????????????????| 51kB 3.2MB/s
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-9.0.1 setuptools-36.6.0 wheel-0.30.0
[root@docker ~]#
  • pipのバージョン
[root@docker ~]# pip -V
pip 9.0.1 from /usr/lib/python2.7/site-packages (python 2.7)
[root@docker ~]#

 python-redmineのインストール

[root@docker ~]# pip install python-redmine
Collecting python-redmine
  Downloading python_redmine-2.0.2-py2.py3-none-any.whl (596kB)
    100% |????????????????????????????????| 604kB 622kB/s
Installing collected packages: python-redmine
Successfully installed python-redmine-2.0.2
[root@docker ~]#

【Redmine3.3】ナレッジ管理とドキュメント管理プラグインのインストール

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、Redmine3.3上に以下のプラグインをインストール

  • knowledgebase(ナレッジ管理)
  • dmsf(ドキュメント管理)

目次

knowledgebaseのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@24bdbf246513:/home/redmine/redmine# cd plugins/
root@24bdbf246513:/home/redmine/redmine/plugins#
root@24bdbf246513:/home/redmine/redmine/plugins# git clone git://github.com/alexbevi/redmine_knowledgebase.git redmine_knowledgebase
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine/plugins# bundle install
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate NAME=redmine_knowledgebase
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine

dmsfのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@b9a9f615de4c:/home/redmine/redmine/plugins# cd plugins/
root@b9a9f615de4c:/home/redmine/redmine/plugins# git clone -b v1.5.6 https://github.com/danmunn/redmine_dmsf
root@b9a9f615de4c:/home/redmine/redmine/plugins# cd ..
root@b9a9f615de4c:/home/redmine/redmine# bundle install --without xapian
root@b9a9f615de4c:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine
redmine
[root@docker ~]#

【Redmine3.3】issue_templatesとAttach image from clipboardプラグインのインストール

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、Redmine3.3上に以下のプラグインをインストール

  • issue_templates(チケットのテンプレート化)
  • Attach image from clipboard(クリップボードから直接画像を直接添付)

目次

issue_templatesのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@24bdbf246513:/home/redmine/redmine# cd plugins/
root@24bdbf246513:/home/redmine/redmine/plugins# hg clone https://bitbucket.org/akiko_pusu/redmine_issue_templates
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine# bundle update
root@24bdbf246513:/home/redmine/redmine# bundle install
root@24bdbf246513:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine

Attach image from clipboardのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@24bdbf246513:/home/redmine/redmine# cd plugins/
root@24bdbf246513:/home/redmine/redmine/plugins# git clone git://github.com/peclik/clipboard_image_paste.git
Cloning into 'clipboard_image_paste'...
remote: Counting objects: 419, done.
remote: Total 419 (delta 0), reused 0 (delta 0), pack-reused 419
Receiving objects: 100% (419/419), 257.95 KiB | 0 bytes/s, done.
Resolving deltas: 100% (149/149), done.
root@24bdbf246513:/home/redmine/redmine/plugins#
root@24bdbf246513:/home/redmine/redmine/plugins#
root@24bdbf246513:/home/redmine/redmine/plugins# exit
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine
redmine
[root@docker ~]#

【Redmine3.3】view-customizeのインストール

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 ここでは、Redmineプラグイン「view customize plugin」インストール

目次

view-customizeのインストール

redmineのコンテナ内のシェルに入って以下作業

[root@docker ~]# docker exec -i -t 24bdbf246513 /bin/bash
root@24bdbf246513:/home/redmine/redmine# cd plugins/
root@24bdbf246513:/home/redmine/redmine/plugins#
root@24bdbf246513:/home/redmine/redmine/plugins# git clone https://github.com/onozaty/redmine-view-customize.git
Cloning into 'redmine-view-customize'...
remote: Counting objects: 273, done.
remote: Total 273 (delta 0), reused 0 (delta 0), pack-reused 273
Receiving objects: 100% (273/273), 138.79 KiB | 0 bytes/s, done.
Resolving deltas: 100% (101/101), done.
root@24bdbf246513:/home/redmine/redmine/plugins# mv redmine-view-customize view_customize
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
Migrating view_customize (View Customize plugin)...
== 1 CreateViewCustomizes: migrating ==========================================
-- create_table(:view_customizes)
   -> 0.4526s
== 1 CreateViewCustomizes: migrated (0.4528s) =================================

== 2 AddColumnViewCustomizes: migrating =======================================
-- add_column(:view_customizes, :is_enabled, :boolean, {:null=>false, :default=>true})
   -> 0.6943s
-- add_column(:view_customizes, :is_private, :boolean, {:null=>false, :default=>false})
   -> 0.6576s
-- add_column(:view_customizes, :author_id, :integer, {:null=>false, :default=>0})
   -> 0.8704s
== 2 AddColumnViewCustomizes: migrated (2.2239s) ==============================

root@24bdbf246513:/home/redmine/redmine#
root@24bdbf246513:/home/redmine# exit

【Redmine3.3】Docker上で起動する

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。

目次

参照書籍

入門Redmine 第5版

入門Redmine 第5版

OS環境

[root@docker ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@docker ~]#

docker環境

[root@docker ~]# docker -v
Docker version 1.12.6, build 96d83a5/1.12.6
[root@docker ~]#

docker imageの取得

[root@docker ~]# docker pull sameersbn/redmine:3.3.1

docker imageの確認

[root@docker ~]# docker images
docker.io/sameersbn/redmine            3.3.1               090b1982b352        12 months ago       658.5 MB
[root@docker ~]#

データ保存場所の作成

データをホスト側のファイルシステムに永続化するため、下記のディレクトリを作成

[root@docker ~]# mkdir -p /srv/docker/redmine/mysql
[root@docker ~]# mkdir -p /srv/docker/redmine/redmine

redminemysqlコンテナ起動

[root@docker redmine]# docker run --name=mysql-redmine -d --env='DB_NAME=redmine_production' --env='DB_USER=redmine' --env='DB_PASS=redpass' -v /srv/docker/redmine/mysql:/var/lib/mysql sameersbn/mysql:latest

redmine用コンテナ起動

[root@docker redmine]#docker run --name=redmine -d -p 80:80 --link=mysql-redmine:mysql -v /srv/docker/redmine/redmine:/home/redmine/data sameersbn/redmine:3.3.1

コンテナ起動の確認

[root@docker redmine]# docker ps -a
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS                        PORTS                                                                 NAMES
66d6b7edf9fd        sameersbn/redmine:3.3.1    "/sbin/entrypoint.sh "   52 seconds ago      Up 39 seconds                 0.0.0.0:80->80/tcp, 443/tcp                                           redmine
64f25d3057aa        sameersbn/mysql:latest     "/sbin/entrypoint.sh "   3 minutes ago       Up 3 minutes                  3306/tcp

[root@docker mysql]#

【CheckPointR77.30】検証記⑩(StaticNAT)

ファイアーウォールで有名なCheckPoint社の R77.30について、少し検証する必要があったため、その備忘録。

なお、以降記載の手順は、検証目的のため、必ずしも正規の手順ではないかもしれませんので、ご了承ください。

目次

前回までの前提

前回までで、構成の概要を決めながら、

mytracking.hatenablog.com

Gaiaのインストールを3台実施し、

mytracking.hatenablog.com

さらに、マネージメントサーバを構築し、

mytracking.hatenablog.com

ファイアーウォールゲートウェイ(2台)を構築し、

mytracking.hatenablog.com

IPアドレスを設定し、

mytracking.hatenablog.com

staticルーティングまでを設定し、

mytracking.hatenablog.com

Checkpoint管理コンソール製品「SmartConsole」をインストールし、

mytracking.hatenablog.com

ファイアーウォールクラスタの構築を行い、

mytracking.hatenablog.com

HideNATの設定を行った。

mytracking.hatenablog.com

以降では、宛先アドレスの変換を行うため、「StaticNAT」を実施する。

DMZにWebサーバの配置

まず、DMZ(ここでは、「172.16.1.0」)ネットワークに Webサーバを構築する。

DMZネットワーク上に、Webサーバを用意し、(ここでは、「172.16.1.20」)

Apacheサービスを起動しておく。

Webサーバ用のオブジェクトとStaticNAT用のオブジェクトの作成

Webサーバ用のオブジェクト実体を作成する。

次に、外部(ここでは、「192.168.3.0」)ネットワークからのアクセス用のオブジェクト (ここでは、「192.168.3.80」だが、通常はグローバル用IP用のオブジェクトになるだろう。)を作成し、

作成した外部(ここでは、「192.168.3.0」)ネットワークからのアクセス用のオブジェクトに、 (「192.168.3.80」→ 「172.16.1.20(Webサーバの実体オブジェクト」)への StaticNAT(宛先のアドレス変換を実施する(グローバルIP→プライベートIPへのアドレス変換イメージ)

Webサーバへのアクセス用ルール

以下のルールを作成する。

  • ①内部ネットワーク→Webサーバへの実体(「172.16.1.20(Webサーバの実体オブジェクト」)へのhttpアクセス。
  • ②外部ネットワーク→StaticNAT用のオブジェクト(「192.168.3.80(Webサーバの実体へStaticNATを行うオブジェクト」)へのhttpアクセス。

Webサーバへの内部ネットワークからのアクセス

内部ネットワーク→Webサーバへの実体(「172.16.1.20(Webサーバの実体オブジェクト」)へのhttpアクセスを行う。 アクセス要件としては、下記の通り。

  • ①送信元:192.168.1.45
  • ②宛先:172.16.1.20

Webサーバへアクセスができることを確認する。

Webサーバ側のアクセスログを確認する。 アクセスログの送信元アドレスが、「172.16.1.250」になっていることがわかる。 ここでは、「172.16.1.250」は、ファイアーウォールクラスタのVIPであるため、 送信元アドレスが、ファイアーウォールクラスタの送信元アドレスに変換されないようにする。

具体的には、内部ネットワーク(ここでは、「192.168.1.0」)から、 DMZネットワーク(ここでは、「172.16.1.0」)へのアクセス時、 送信元アドレスが、ファイアーウォールクラスタのVIPではなく、 オリジナルの送信元アドレス(ここでは、「192.168.1.0」)になるように NAT変換設定を行う。

再度、Webサーバへアクセスする。

Webサーバ側のアクセスログを確認する。 このとき、ファイアーウォールクラスタのVIPとなっていた 送信元アドレスが、オリジナルの送信元アドレス (ここでは、「192.168.1.45」)になっていることを 確認する。

Webサーバへの外部ネットワークからのアクセス

外部ネットワーク→StaticNAT用のオブジェクト(「192.168.3.80(Webサーバの実体へStaticNATを行うオブジェクト」)への

httpアクセスを行う。 アクセス要件としては、下記の通り。

  • ①送信元:192.168.3.5
  • ②宛先:192.168.3.80(⇒Webサーバへの実体(「172.16.1.20」)へStaticNATされる)

外部ネットワークから、StaticNAT用のオブジェクト「192.168.3.80」へアクセスできることを 確認する。

ファイアーウォール側のログを確認し、 192.168.3.80(⇒Webサーバへの実体(「172.16.1.20」)へStaticNATされていることを 確認する。