GitLab on Docker

GitLab のバージョンアップしてみたところ、スクリプトエラーになってしまうので、作り直そうかと。 せっかくなので、GitLab は Docker でも動作させることができるようなので、Docker やってみよう。 OS もサポートが終わりそうなので CentOS Stream にしま…

Exment 構築(LDAP連携設定)

Exment のログインをADを使ってログインできるように設定する。 管理者でログインする 左のメニューの「システム設定」をクリック 右上の「システム設定」ボタンをクリック 「ログイン設定」をクリック 右上の「+新規」ボタンをクリック 設定する 記載した…

Exment 構築

Exment という Web データベースを構築してみようと思います。 また、ログイン認証を DC でできるように設定も行おうと思います。 参考にする手順は下記。 インストール-概要 (exment.net) Linuxによる環境構築 (exment.net) OS 準備 動作 OS は CentOS 8 だ…

Ansible 環境構築

YAML 形式の Playbook を作成して、構築が行える Ansible。 Ansible を使って、環境を構築できるように Ansible 環境を構築します~ 環境の構成としては、とりあえず、以下。 【Ansible サーバ】 192.168.200.13 【対象端末】 192.168.200.21 Ansible インス…

Git Runner (Linux)

GitHub にコミットすると、ビルドする Git Runner の Linux 版を構築する。 公式には、Docker を使うのが推奨らしいが、VMでTry. Git Runner が CentOS 8 未対応っぽい。(リポジトリみても、バイナリがない) なので、CentOS 7 の VM を作成。 最小構成でセッ…

Git Runner (Windows)

GitHub にコミットすると、ビルドする Git Runner の Windows 版を構築する。 まず、Windows マシンを構築。 ビルド環境に、Visual Studio Community をセットアップ! Visual Studio Communit (visualstudio.microsoft.com) からセットアップの EXE をダウ…

GitLab構築

次に、GitLab を構築する。OS は、CentOS8 で。 パッケージの更新やら、ドメインの参加とかは、実施済みってことで進める。 GitLabの設定の際に、アクセスするアカウントとパスワードを設定する必要があるため、事前に、GitLab ユーザを作成しておく。 イン…

ドメイン参加(Linux)

Linux クライアントを作成したドメインに参加させます。 端末は、CentOS8で。 必要なパッケージをインストールします。 # dnf -y install realmd \ sssd \ oddjob \ oddjob-mkhomedir \ adcli \ samba-common-tools \ krb5-workstation ドメインが検索できる…

ドメイン参加(Windows)

Windows クライアントを作成したドメインに参加させます。 コンピュータ名が登録されるため、ドメイン参加前に端末のコンピュータ名を変更しておきます。 「システムのプロパティ」の「変更」ボタンをクリック "ドメイン" を選択 ドメイン名 "lab.local" を…

DC(Domain Controller)作成

DC(Domain Controller) は、最近だとSamba4でできるみたい。 なので、DC 用の仮想マシンを CentOS8 + Samba4 で、構築してみる。 仮想マシンを作って、CentOS8 をインストール(最小構成のインストールで、最低限のセットアップ)。 ホスト名やIP、ゲートウェ…

ルータ構築

ルータの OS として、Linux とか Windows でも、よいのだが、今回は軽量な vyOS にしてみた。 (VM ホストは、ちょっと豪華な PC なので、なるべく軽く。。。) ISOの入手や、推奨マシンスペック、インストール手順などは、以下を参考にして実施。 VyOS jp (wi…

CI/CD トライ!

CI/CD やってみようかなってことで、自宅マシンに、VM 立てて、そこでやってみよう! せっかくだから、認証とかも、DC(Domain Controller) 立てて一括管理とかチャレンジしてみるか。 って軽い感じで、やってみる! そんなわけで、ざっくりネットワーク構成…

CSV出力

C#

Attributeで遊んでみようと、とりあえずCSVを出力するのをやってみようかと。 ってことで、作ってみた。 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using System.Text; namespace CSV…

DebuggerHidden属性

C#

デバッガの抑制を行います。 動作的には、DebuggerStepThroughAttributeと同じように動作します。ただし、DebuggerStepThroughAttributeは、メソッド内にブレークポイントを設定すれば止まりますが、DebuggerHiddenAttributeの場合は、設定しても止まりませ…

DebuggerStepThrough属性

C#

デバッガの制御系のDebuggerStepThroughAttributeです。 デバッガでステップインの抑制を行います。 この属性がついているクラス、構造体、メソッド、プロパティがあると、ステップインが実行されず、ステップオーバーと同じ動きになります。 using System.D…

Conditional属性

C#

最近、C#のAttributeについてはまってたりしてます。 なので、いろいろ調べてみた。 まずは、代表(?)的なAttributeのConditionalAttribute。戻り値なし(void)のメソッドに、属性を付加します。 この属性がついていると、プロジェクトのプロパティのビルド、…

コマンドマップ

C#

ふと、思いました。 class Program { static void ActionA() { Console.WriteLine("Action A."); } static void ActionB() { Console.WriteLine("Action B."); } static void ActionC() { Console.WriteLine("Action C."); } static void Main(string[] args…

WPFxUPnP 2 その4

最後に、WPFでの画面です。デバイスのListを作成して、 public class UPnPLightList : ObservableCollection<UPnPLightDevice> { } デバイスのリストを、依存プロパティとして出して、バインドできるようにしています。 あとは、それぞれ、イベントハンドラを設定して、操作で</upnplightdevice>…

WPFxUPnP 2 その3

WPFxUPnP 2 その3久しぶりに、UPnPのデバイスについて・・・。まずは、UPnPのライトのデバイスクラスを作成します。 public class UPnPLightDevice : INotifyPropertyChanged { public UPnPDevice Device { get; set; } public UPnPService SwitchPowerServi…

可変引数は、マーシャリングできるのか!?

C#

ということで、今回は、C/C++で作成されたDLLの可変引数関数は、C#からマーシャリングできるのかを議題にやってみようと思う。まず、C/C++のDLLのコード。 これは単純に、コンソールに出力するだけの簡単な関数にしてみました。(つまり、printf関数です) …

ログ出力時の呼び出し元関数名を出力する

C++

ログ出力など可変引数を利用して出力している場合、呼び出し元の関数名を出力は容易ではない。 そのために、ゴソゴソしてみた。 出力するログ出力側で、引数で渡せば容易だが、そんなのはめんどくさい! そんなめんどくさをなくすサンプル。まずは、__VA_ARG…

WPFxUPnP 2 その2

その1で、示したクラスをそのまま使うと、 解放せずに検索スレッドが終了すると例外が発生するので、ちょっと使いづらいのですよね。 (操作とか後々利用したいので、解放せずに残しておきたい!) そこで、今回はラップクラスを作成して例外が発生しないよ…

MSI

MSI

Visual Studioのセットアッププロジェクトで生成されるMSIについて、 アンインストールできないようにするには、MSIのデータベースを弄る必要がある。 Orcaでできるけど、毎回するのは面倒なので、スクリプトをビルド後に設定し、実行させる。 Option Explic…

WPFxUPnP 2 その1a

その1の補足。 COMは利用した分だけ、IUnknownのReleaseを実行し、参照カウンタを解放する必要があります。(利用する際には、IUnknownのAddRef) C#からCOMの呼び出しは、ランタイム呼び出し可能ラッパー (RCW: Runtime Callable Wrapper)ってのが、仲立ち…

WPFxUPnP 2 その1

UPnPデバイスのクライアント側の作成にチャレンジです! 対象は、作っていたUPnPライトを操作するアプリケーションを作成してみます。UPnPのクライアント側は、まず「UPnP 1.0 Type Library(Control Point)」を参照に加えます。 そして、UPnPデバイスの検索…

排他制御

C++

C#でスレッドの排他ロックを行う場合、次のようにすれば、スコープ内は排他制御されます。 lock (this) { } WindowsのC++で、「排他制御をC#風にできないか?」をテーマに実装してみました。 結果、こんな感じになりました。 #include <Windows.h> class CLockObject { </windows.h>…

WPFxUPnP その13

最後に、コントロールです! 操作用のVBScriptはこんな感じ。 ' ----------------------------------------------------------------------------- ' Control ' ----------------------------------------------------------------------------- Sub LightOn…

WPFxUPnP その12

UPnPデバイスとしては動作するようになりました。 次に、プレゼンテーションを作成して、コントロールとイベントを動かします。 まずは、イベントを。UPnPライトの状態をイベントで受け取り、プレゼンテーションのHTMLに表示します。 これには、VBScriptを用…

WPFxUPnP その11

UPnPのデバイスとWPFのVMとを結びつけて、UPnPからの操作をWPF側へ反映させてます。 また、WPFの設定値をUPnPデバイスへ反映させます。 public bool ON { get { return Light.On; } set { Light.On = value; Program.Light.SwitchPowerService.SetStatus(val…

WPFxUPnP その10

では、OSに認識されるまで行きましょう! UPnPはCOMから呼び出され、動作するというのは、いままでの流れで、ご存じかと。 そこで、COMのセキュリティを設定して、動くようにする必要があります。 COMセキュリティを設定するには、CoInitializeSecurityを用…