この作業を行う際の目標は、多数のLinuxマシンからネットワークにサービスを提供するのにかかる時間を最小限に抑えることでした。1.基本原則の基本的な説明1.1。 MagOSのアプリケーション。1.2。 テクノロジー。1.3。 基本的な配布の選択。2.ネットワーク構造。2.1。 Magosサーバー。3.ブートローダーの構成。3.1。 ローダー文字列。3.2。 使用されたオプション。3.3。 使用できるオプション。3.4。 ネットワークブート機能。4.システムを初期化する手順。4.1。 デフォルトのbasecfg.ini構成ファイル構造。4.2。 システムディレクトリの構造。4.3。 実装。5. MagOSサーバー。5.1。 一般的な情報。5.2。 ネットワーク設定。5.3。 サービスを構成します。5.4。 プログラムリポジトリ。5.5。 追加のサーバーデータ5.6。 モニタリング6.カスタムモジュール。6.1。 カスタムモジュールを作成するための一般原則。6.2。 モジュールの数。6.3。 特別な目的のためのモジュール。6.4。 モジュールの制限。6.5。 モジュールの作成手順。6.6。 システム更新モジュール。6.7。 Officeソフトウェアインストールモジュール。6.8。 ユーティリティとサーバーを備えたモジュール。6.9。 システム設定モジュール。7.スクリプト。7.1。 magos-patchesへの追加。7.2。 OSインストールスクリプト。7.3。 ADの包含スクリプト。7.4。 システム管理(/ root / bin)。7.5。 magosプログラムとオペレーティングシステムの動作を修正する追加のスクリプト。8.技術者への指示。基本原則の基本的な説明
MagOSアプリケーション
MagOSは、広範なリストから選択されたディストリビューションの特定のビルドです。 Magea、Mandriva、Rosa、Ubuntu、Debian、Fedora、AltLinuxなどのライブディストリビューションは、アセンブリを構築するための基礎として使用できます。 MagOSの特定の要素は、変更されたカーネル(AUFSをサポートするため)、特別な方法で作成されたinitrd(UIRDを使用)、およびMagOSを制御するために設計された追加のスクリプトセットです。
MagOSでは、さまざまなディストリビューションのLiveアセンブリ(CD、DVDディスクからダウンロードするように設計されたアセンブリ)に基づいて、完全なオペレーティングシステムを作成できます。 MagOSの使用の詳細には、このアプローチのさまざまな追加の利点があります。
元の状態に復元する非常に単純なシステム。 特別なコマンドの導入により、ユーザーが行ったすべての設定をリセットし、システムを元の状態に戻すことができる場合、機器を操作する技術と比較できます。 ここでは、ユーザーデータが格納されているセクションのデータが破壊されることで同じ効果が得られます。 したがって、ディストリビューションをインストールするためのこのオプションは、教育プロセスで使用する場合に不可欠です。 上記に加えて、配布キットをフラッシュドライブにインストールする機能を追加する必要があります。これにより、学生または学生は教室だけでなく自宅でもそれを使用できます。
配布キットの2番目に重要な利点は、システムを事前設定できることです。 これは、必要なすべての構成ファイルを、ディストリビューションの不変部分(いわゆるモジュール)にパラメーターとともに含めることで実現されます。 このテクノロジーを使用して、ユーザーのコンピューターにシステムをインストールした後の管理者のアクションの数を最小限に抑えます。 この機会は、コンピュータークラスの組織だけでなく、産業企業の間でも使用できるため、多数のユーザーのコンピューターで作業する場合のインストールと構成にかかる最小限の人件費を最小限に抑えることができます。
3番目の利点は、オペレーティングシステムのこのようなアセンブリのインストールと更新が容易なことです。これは、ディスクのパーティション分割、ファイルシステムの作成、一連のファイルのコンピューターへのコピー、ブートローダーのインストールに要約されます。 産業用アプリケーションでは、適切なスクリプトを実行すると、これらすべての操作を自動的に実行できます。 インストールされたディストリビューションを更新すると、ファイルのコピーも行われます。これは、たとえばコンピューターの電源を切ったときに自動的に実行できます。
利点のいくつかには、インターネットなどから配布をネットワークでダウンロードする機能が含まれます。
MagOSの未実現機能には、安全な分散ファイルシステムにユーザーデータを保存する機能の欠如が含まれます。 このような分散ファイルシステムの実装により、ユーザーの完全な再統合が可能になります。
MagOSに関するいくつかの入門情報は、記事
MagOS Linux(9月リリース)から入手できます。
テクノロジー
MagOSに含まれるLinuxカーネルの変更は、AUFSファイルシステムにパッチを含めることです。 AUFSを使用すると、ループバックインターフェイスを使用して外部ファイルシステムをファイルシステムに接続し、レイヤーケーキのようなファイルシステムを構築できます。 このような結果のファイルシステムの中間層は、ほとんどの場合RO(読み取り専用)モードで接続され、最上位層は原則としてRW(読み取り/書き込み)モードで接続され、RAMに配置できるディスクファイルシステムに投影されます、物理ディスク、ディスクイメージ、およびSquashFSファイルシステムを使用して接続された特別なモジュールのシャットダウン操作中に保存されます。
SquashFSファイルシステムを使用すると、ファイルシステムのすべての属性を保持しながら、ブロックアルゴリズムを使用して圧縮を実行できます。 MagOSでは、AUFSファイルシステムのレイヤーイメージでロード可能なモジュールを作成するために使用されます。 ブロック圧縮アルゴリズムを使用すると、モジュールファイルからデータを抽出する必要がある場合、モジュールファイル全体を解凍しないようにできます。
MagOSでは、ほとんどのディストリビューションでLinuxをブートするために使用されるinitrdディスクイメージが、システムの編成に使用されます。 「階層化された」配布ファイルシステム、プロセス構成ファイルなどを作成するスクリプトがあります。
システムの構成に必要なデータは、grub4dos / grub2 / syslinuxブートローダーで指定されたオペレーティングシステムのカーネルパラメーターを介して送信され、特別な構成ファイルMagOS.iniを使用します。 どこでどのパラメータが送信されるかは、ドキュメントに記載されています。 オペレーティングシステムの一般的な構成に関連するパラメーターは、カーネルパラメーターを使用して渡されます。 これらは、Unified Init Ram Disk(uird)パラメーターシステムに編成されています。
パラメーターについては、プロジェクトのWebサイト
UIRDで説明されています。 使用される
Magosマルチディストリビューション。
産業用アプリケーションでは、ディストリビューションキットを含み、HTTP(リモートダウンロード用)、TFTP(PXE経由のリモートダウンロードサーバー)、SSH(ファイル管理用)、RSYNC(ユーザーコンピューターへのOSのインストールおよび更新用)をサポートするサーバーなしではできません。 サーバーは、MagOSを含むあらゆるディストリビューションに実装できます。 私の場合、CentOS 6ディストリビューションに基づいた仮想コンテナーが使用されました。
システムを制御するために、必要なオプションとそれらを処理するスクリプトがMagOSシステムに追加されました。
基本配布の選択
ネットワークの構築に基づいて配布キットを選択することは、常に複雑で物議を醸す作業です。 特定の分布を選択するには、多くのローカル問題を含む多くの要因を考慮する必要があります。 次の要因がありました:非常に非生産的なユーザーコンピューター、最近買収されたものの、コンピューターに保存されたため、ユーザーが座っている典型的なマシンで、わずか2ギガバイトのRAMと、あまり高速ではないデュアルコアCeleron。 このようなユーザーのコンピューターの典型的な構成は、デスクトップマネージャーの選択に制限を課します;特に、快適なユーザーエクスペリエンスの可能性を失うことなく、KDEを使用することはもはやできません。
第二に、これは要員の資格が低いという問題であり、その主な機能は決してコンピューターでの作業ではありません。 人々が長年一緒に作業しなければならなかった単一のオペレーティングシステムの長年の習慣を覚えておく必要があります。WindowsXPはサポートが中止されたため、ユーザーの職場でOSを交換する問題が実際に発生します。
デスクトップの外観を古き良きXPの外観に適応させる可能性を探り、Cinnamonに立ち寄ることにしました。 開発はまだリリースされていませんが、標準構成では、このデスクトップは非常に安定して動作し、適切なテーマをインストールすることでXPの外観に簡単に適応できます。 オペレーティングシステムの選択に影響を与える追加の要因は、職場で国内オペレーティングシステムを搭載したコンピューターを見るための状態構造の「欲求」でした。 私たちの場合、全体の選択は、Rosa OSとAlt Linux OSの間の選択に帰着しました。
Rosa OSでのかなりの経験にもかかわらず、AltLinuxとRosaのディストリビューションを比較することはRosaに有利ではありませんでした。 まず第一に、LiveDVDの一部としてCinnamonが不足していること、そして第二に、最近の配布パッケージの品質の低下が原因です。
したがって、
Cinnamonデスクトップを含むP7スターターキットアセンブリの1つであるAltLinuxが、アセンブリ作成の基礎として選択されました。 この選択のプラス面は、セットの最小構成です。これにより、自由に設定を拡張できます。
ネットワーク構造
Magosサーバー
エンタープライズネットワークには、Magosサーバーが展開された仮想化サーバーがあります。 サーバーはいくつかの機能を実行します。
まず、リモートダウンロードサーバーとして機能します。 リモートブートはTFTPを使用して実装され、ワークステーションでの作業に使用されるのと同じ構成でMagOSを起動できます。 このダウンロードを使用して、機器をテストし、ワークステーションにオペレーティングシステムをインストールし、他の多くのタスクを実行できます。 さらに、ClonezillaおよびMemtestのイメージは、リモートダウンロードサーバーを使用してダウンロードされます。
MagOSを実行しているワークステーションのリモートロードはHTTPを介して行われます。HTTPの場合、Lighttpdはサーバーにインストールされ、DocumentRootはMagOSリポジトリを指します。
ワークステーションへの配布キットのインストールとワークステーションの更新は、RSYNCプロトコルを使用して実行されます。 したがって、rsyncdはサーバーにインストールされます。
サーバー管理は、SSHプロトコルを使用して実行されます。 同じプロトコルを使用して、テストコンピューターで準備されたプログラムモジュールへの変更がサーバーで更新されます。
メモリが少ないモジュールの作成に問題があったため、このコンピューターには4Gbのメモリが搭載されています。
ネットワーク統合
Windows 2008 SP2に基づいてADを展開し、すべてのネットワークコンピューターがADに含まれています。 例外なく、Linuxを実行しているコンピューター。
ブートローダーのセットアップ
ローダー文字列
title AltLinux i586 cinamon save
使用されたオプション
カーネルパラメーターが多数あるため、MagOSパラメーターを強調表示するために、パラメータープレフィックス 'uird'(Unified Init Ram Disk)が導入されました。
uird.ro=*.xzm,*/live
uird.ro -
MagOSパラメーター。 ROモードでマウントされているモジュールのフィルターを定義します。 そのため、実際のMagOSモジュールとLiveDVD AltLinux自体が機能します。
uird.from=/AltLinux/iso/altlinux-p7-cinnamon-latest-i586.iso;/AltLinux/modules/i586/
uird.from -
MagOSパラメーター。 システムのモジュールが存在するソースのリスト。 これは、モジュールとディストリビューション自体をロードするためのパスを示しています。
uird.load=*
uird.load -
MagOSパラメーター。 ブート段階で接続する必要があるモジュールのフィルター。
root=uird
root-カーネルパラメーター。 ルートファイルシステムを指定します。
rw
rw-読み取り/書き込みモードを有効にします。
findswap
findswap -
MagOSパラメーター。 システムを自動的にスワップに接続させます。 Linux Swapパーティションがシステム上にある場合、接続されています。 それ以外の場合、Windowsスワップファイルが検索されます。
vga=788
vga-カーネルパラメーター。 グラフィックモードを有効にします。
quiet
quiet-カーネルパラメーター。dmesgロギングの必要性を示します。
plymouth.enable=0
plymouth.enable-カーネルパラメーター。 オペレーティングシステムの起動中にグラフィカル画面とログ出力を制御します。
uird.home=/dev/sda3/AltLinux-Data/homes/
uird.home -
MagOSパラメーター。 ユーザーのホームディレクトリが保存されるソースを指定します。 MagOSの既存のバージョンのバグにより、デバイスを含む完全なパスが必要です。
uird.changes=/dev/sda3/AltLinux-Data/changes/
uird.changes -
MagOSパラメーター。 ルートファイルシステムへの永続的な変更が保存されるソースを指定します。
users
users-カーネルパラメーター。
使用できるオプション
ハードドライブに保存されたデータに暗号化を使用することは可能です。 この場合、データをパーティションに保存する代わりに、ディスクイメージへの保存を使用する必要があります。 画像の形式は次のとおりです。
*.RWM.ENC - RW *.ROM.ENC - RO
uird.copy2ram [+] = -RAMにコピーされるモジュールのフィルター。 これは、大量のRAMがある場合の作業を高速化するために使用できます。
uird.copy2cache [+] = -キャッシュにコピーされるモジュールのフィルター。
uird.cache [+] = -モジュールを同期するソース。
コンピューターの電源を切るときに、MagOSファイルをサーバーと同期する代わりにキャッシュを使用することができます。 この方法の欠点には、サーバーとの交換がHTTPプロトコルを使用して実行されるという事実があり、それ自体がパフォーマンスを大幅に低下させます。 2番目の欠点は、更新オブジェクト(MagOS.iniファイル、ブートパーティション、OSパーティション自体)を分離することが難しくなることです。 リモートリポジトリをローカルまたはプライベート(INTRANET)リポジトリに同期し、システムを更新するために使用されるレイヤーキャッシュレベルと対応するuird.cacheパラメーターは、次のように設定する必要があることに注意してください。
uird.cache=/MagOS/cache;/MagOS-Data/cache;/MagOS-Data/netlive
各ソースには独自のディレクトリがあります。
uird.netfsopt [+] = -ネットワークFSをマウントするための追加オプション:sshfs、nfs、curlftpfs、cifs。
これらのファイルシステムを使用して、後でネットワークファイルシステムをユーザーデータセクションに接続できます。
uird.noload [+] = -ブート時にスキップする必要があるモジュールのフィルター
個々のコンピューターまたはネットワークの一部のモジュールを選択的に無効にできます。
uird.homes [+] = -ユーザーのホームディレクトリが保存されるソース(AUFSが結合されます)。
基本的に、ここでは、layer-homesユーザーのホームディレクトリレベルと対応するパラメーターを入力します:uird.homes:
uird.homes=/MagOS-Data/homes;/MagOS-Data/home.img;nfs://magos.sibsau.ru/homes/n/e/myuser
さまざまなソースからのすべてのユーザーディレクトリは、AUFSを介してカスケードされ、/ homeにマウントされます。 最初のソースが優先度が高く、リストの順に優先度が低くなります。 ソースがuird.home =パラメーターで指定されている場合、ソースは/ homeにマウントされます。 したがって、ホームフォルダーと異なるファイルシステムのインポジションが複数接続される可能性があります。 ユーザーのホームフォルダーのネットワークホスティングに使用できます。
ソースの種類:/path/dir
使用可能なメディア上のディレクトリ。
/dev/[..]/path/dir
指定されたメディアのディレクトリ。
file-dvd.iso, file.img
ディスクイメージ(ISO、ブロックデバイスイメージ);
server/path…
server/path…
...-HTTP経由でアクセス可能なソース(httpfsを使用);
ssh://server/path/…
...-SSH経由でアクセス可能なソース(sshfsを使用);
server/path…
server/path…
...-FTP経由でアクセス可能なソース(curlftpfsで使用);
nfs://server/path/…
NFS経由で利用可能なソース。
cifs://server/path/…
CIFS経由で利用可能なソース。
uird.machines=
-マシン依存の永続的な変更が保存されるソース。
再入可能なユーザーを確保するために必要な、変更にマシン依存のリソースを使用することができます。
ネットワークブート機能
ネットワークブートには次のパラメーターが使用されます。
kernel images/vmlinuz uird.ro=*.xzm,*/live uird.from=http://magos-server.mydomain.local/magos/AltLinux/iso/alt linux-p7-cinnamon-latest-i586.iso;http://magos-server.mydomain.local/magos/AltLinux/modules/i586/ uird.load=* root=uird rw findswap vga=788 quiet plymouth.enable=0 users
これらは同じパラメーターですが、uird.fromパラメーターの指定に注意する必要があります。
uird.from=http://magos-server.mydomain.local/magos/AltLinux/iso/altlinux-p7-cinnamon-latest-i586.iso;http://magos-server.mydomain.local/magos/AltLinux/modules/i586/
これは、OSのロード元のサーバーの完全なhttp URLです。 ベースレイヤーベースレベルおよび対応するuird.fromパラメーターは、次のように設定できます。
uird.from=/MagOS;/MagOS-Data;MagOS.iso;http://magos.sibsau.ru/repository/netlive/2014.64/MagOS
システム初期化順序
- 構成ファイルは、uird.basecfgパラメーターで指定されたパスで検索されます。
- パラメータは構成ファイルから設定されますが、カーネルパラメータにはまだ設定されていません。
- 基本レベルのソースは、uird.fromパラメーターで指定された順序でマウントされます。
- キャッシュレベルのソースは、uird.cacheパラメーターで指定された順序でマウントされます。
- ホームレベルのソースは、uird.homesパラメーターで指定された順序でマウントされます。
- uird.changesパラメーターで指定された永続的変更のソースの最高レベルAUFSへの接続が発生します。
- ベースレベルは、uird.copy2cacheパラメーターとサブレベルの対応を考慮して、キャッシュレベルに同期されます。 キャッシュのサブレベルがベースレベルよりも小さい場合、残りのサブレベルはRAMで同期されます。
├── layer-base ==> ├── layer-cache │ ├── 0 --> │ ├── 0 │ ├── 1 --> │ ├── 1 │ ├── ... --> │ └── ... │ └── ... --> │ RAM
- RAMのベースレベルとキャッシュレベルは、uird.copy2ramパラメーターを考慮して同期されます。
- モジュールは、RAM、キャッシュレベル、ベースレベルで検索され、上位AUFSレベルに接続されるか、ルートにコピーされます(パラメーターuird.load、uird.noload、uird.ro、uird.rw、uirdで指定されたフィルターを考慮に入れます)。 cp)。
- ホームレベルのソースのカスケードアソシエーションが実行され、それらの接続は/ home /で行われます。
- Rc.preinitスクリプトが実行されています。
デフォルトのbasecfg.ini構成ファイルの構造
uird.config=MagOS.ini uird.ramsize=70% uird.ro=*.xzm;*.rom;*.rom.enc;*.pfs;*.sfs uird.rw=*.rwm;*.rwm.enc uird.cp=*.xzm.cp,*/rootcopy uird.load=/base/,/modules/,rootcopy uird.noload= uird.from=/MagOS;/MagOS-Data uird.changes=/MagOS-Data/changes uird.cache=/MagOS-Data/cache uird.machines=/MagOS-Data/machines uird.home=/MagOS-Data/homes
uird.basecfgが指定されていない場合、/ uird_configs / basecfg.iniがinitrd内で使用されます。
システムディレクトリ構造
/memory/ ├── bundles - │ ├── 00-kernel.xzm │ ├── 01-firmware.xzm │ ├── 10-core.xzm │ ├── 80-eepm-1.5.2.xzm │ └── ... - .. ├── changes - │ ├── etc │ ├── home │ ├── memory │ ├── run │ ├── var │ └── ... - .. ├── data - │ ├── cache - │ ├── homes - homes │ ├── machines - () │ └── from - ├── layer-base - │ ├── 0 - │ ├── 1 - ( uird.from=) │ └── ... - .. ├── layer-cache - │ ├── 0 - │ ├── 1 - ( uird.cache=) │ └── ... - .. ├── layer-homes - homes │ ├── 0 - │ ├── 1 - ( uird.homes=) │ └── ... - .. ├── cmdline - └── MagOS.ini.gz -
実装
実装は、
dracut初期化
スクリプト (ベース、busyboxモジュール)と
uirdスクリプト(livekitlib + uird-init)のセットに基づいています。
- cmdline-hook:parse-root-uird.sh(root = uirdパラメーターを確認);
- mount-hook:mount-uird.sh(uird-initスクリプトを実行);
- livekitlib-初期化システムの機能のライブラリが含まれています。
- uird-init-livekitlibから一連の関数を順次実行し、dracut $ NEWROOT変数で指定されたディレクトリ内の単一のAUFSルートにシステムモジュールのカスケードブロックマウントを実行します。
MagOSサーバー
一般的な情報
この場合、magos-serverはopenvzコンテナーとしてデプロイされます。 実装は重要ではありません。
- リモートダウンロードサーバーとして機能します。 リモートブートはTFTP / PXEを使用して実装され、ワークステーションでの作業に使用されるのと同じ構成でMagOSを起動できます。 このダウンロードを使用して、機器をテストし、ワークステーションにオペレーティングシステムをインストールし、他の多くのタスクを実行できます。
- MagOSを実行しているワークステーションのリモートローディングはHTTPを介して行われます。HTTPの場合、Lighttpdはサーバーにインストールされ、そのドキュメントルートはMagOSリポジトリを指します。
- ワークステーションへの配布パッケージのインストールとワークステーションの更新は、rsyncプロトコルを使用して実行されます。 したがって、rsyncdはサーバーにインストールされます。
- サーバー管理はsshプロトコルを介して実行されます。 同じプロトコルを使用して、テストコンピューターで準備されたプログラムモジュールへの変更がサーバーで更新されます。
サーバー実装
オペレーティングシステムCentos v6。 次のリソースが仮想コンテナに割り当てられます:CPU-2、RAM-512Mb、スワップ-1Gb、仮想ディスクサイズ40Gb。
ネットワーク設定
ifcfg-eth0で設定 DEVICE=eth0 IPADDR=192.168.1.xxx NETMASK=255.255.255.0 NETWORK=192.168.1.0 GATEWAY=192.168.1.1 DNS1=192.168.1.xxx BROADCAST=192.168.1.255 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static
ネットワークサービス(netstat -tunlp) サービスのセットアップ
Lighthttpd
打ち上げ: chkconfig --list lighttpd lighttpd 0:off 1:off 2:on 3:on 4:off 5:on 6:off
設定ファイルlighttpd.conf var.log_root = "/var/log/lighttpd" var.server_root = "/var/www" var.state_dir = "/var/run" var.home_dir = "/var/lib/lighttpd" var.conf_dir = "/etc/lighttpd" var.vhosts_dir = server_root + "/vhosts" var.cache_dir = "/var/cache/lighttpd" var.socket_dir = home_dir + "/sockets" include "modules.conf" server.port = 80 server.use-ipv6 = "disable" server.bind = "192.168.1.xxx" server.username = "lighttpd" server.groupname = "lighttpd" server.document-root = server_root + "/" server.pid-file = state_dir + "/lighttpd.pid" server.errorlog = log_root + "/error.log" include "conf.d/access_log.conf" include "conf.d/debug.conf" server.event-handler = "linux-sysepoll" server.network-backend = "linux-sendfile" server.stat-cache-engine = "simple" server.max-connections = 1024 index-file.names += ( "index.xhtml", "index.html", "index.htm", "default.htm", "index.php" ) url.access-deny = ( "~", ".inc" ) $HTTP["url"] =~ "\.pdf$" { server.range-requests = "disable" } static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".scgi" ) include "conf.d/mime.conf" include "conf.d/dirlisting.conf" server.follow-symlink = "enable" server.upload-dirs = ( "/var/tmp" )
構成ファイルvhosts.d / magos.conf $HTTP["host"] == "magos-server.mydomain.local" { var.server_name = "magos-server.mydomain.local" server.name = server_name include "conf.d/trigger_b4_dl.conf" server.document-root = vhosts_dir + "/magos/" accesslog.filename = log_root + "/" + server_name "/access.log" }
Conf.d / dirlisting.conf構成ファイル dir-listing.activate = "enable" dir-listing.hide-dotfiles = "disable" dir-listing.exclude = ( "~$" ) dir-listing.encoding = "UTF-8" dir-listing.hide-header-file = "disable" dir-listing.show-header = "disable" dir-listing.hide-readme-file = "disable" dir-listing.show-readme = "disable"
Tftpd
起動(/etc/xinetd.d/tftp :) service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
構成ファイル/var/lib/tftpboot/pxelinux.cfg/default default menu.c32 prompt 0 timeout 300 ONTIMEOUT local MENU TITLE PXE Menu
リポジトリは、magosと呼ばれる動作中の部分と、testingと呼ばれるテスト部分の2つの部分で構成されています。作業リポジトリは、ユーザーワークステーションソフトウェアをインストールおよび更新するように設計されています。インストールされたソフトウェアの予備テストは、テストリポジトリで実行されます。ブートメニューを使用すると、作業リポジトリとテストリポジトリの両方からオペレーティングシステムをロードできます。Rsync
起動(/etc/xinetd.d/rsync): service rsync { disable = no flags = IPv4 socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID }
設定ファイル/etc/rsyncd.conf use chroot = yes max connections = 100 syslog facility = local5 pid file = /var/run/rsyncd.pid [magos] path = /var/www/magos comment = whole MagOS boot [testing] path = /var/www/testing comment = whole MagOS boot
sshd
構成ファイル/ etc / ssh / sshd_config Protocol 2 SyslogFacility AUTHPRIV PasswordAuthentication yes ChallengeResponseAuthentication no GSSAPIAuthentication yes GSSAPICleanupCredentials yes UsePAM yes AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS X11Forwarding no Subsystem sftp /usr/libexec/openssh/sftp-server
プログラムリポジトリ
プログラムリポジトリ構造には、重要なファイルとディレクトリのみが表示されます。マゴス ├──AltLinux │ ├──iso │ │ └──altlinux-p7-cinnamon-latest-i586.iso │ ├──kernel │ │ └──i586 │ │ ├──uird.magos.cpio.xz │ │ ├──uird.soft.cpio.xz │ │ └──vmlinuz │ └──modules │ └──i586 │ ├──00-kernel.xzm │ ├──01-firmware.xzm │ ├──03-1-nvidia-current.xzm │ ├──03-2-nvidia304.xzm │ ├──03-9-fglrx.xzm │ ├──80-eepm-1.5.2.xzm │ ├──80-uird.soft.xzm │ ├──90-magos-patches.xzm │ ├──99-squashfs-tools.32.xzm │ ├──99-u10-update.xzm │ ├──99-u40-office4.xzm │ ├──99-u50-utils.xzm │ ├──99-u99-default.xzm │ ├──MagOS.ini │ └──update.txt ├──AltLinux-Data │ ├──cache │ ├──changes │ ├──homes │ ├──machines │ ├──MagOS-Data.sgn │ ├──modules │ ├──optional │ └──rootcopy └──boot ├──grub4dos │ ├──install.lin │ ├──install.win │ └──local │ └──menu.lst ├──syslinux └──tools
検査 ├──AltLinux │ ├──iso │ │ └──altlinux-p7-cinnamon-latest-i586.iso │ ├──kernel │ │ └──i586 │ │ ├──uird.magos.cpio.xz │ │ ├──uird.soft.cpio.xz │ │ └──vmlinuz │ └──modules │ └──i586 │ ├──00-kernel.xzm │ ├──01-firmware.xzm │ ├──03-1-nvidia-current.xzm │ ├──03-2-nvidia304.xzm │ ├──03-9-fglrx.xzm │ ├──80-eepm-1.5.2.xzm │ ├──80-uird.soft.xzm │ ├──90-magos-patches.xzm │ ├──99-squashfs-tools.32.xzm │ ├──99-u10-update.xzm │ ├──99-u40-office4.xzm │ ├──99-u50-utils.xzm │ ├──99-u99-default.xzm │ ├──MagOS.ini │ └──update.txt ├──AltLinux-Data │ ├──cache │ ├──changes │ ├──homes │ ├──machines │ ├──MagOS-Data.sgn │ ├──modules │ ├──optional │ └──rootcopy ├──boot │ ├──grub4dos │ │ ├──install.lin │ │ ├──install.win │ │ └──local │ │ └──menu.lst │ ├──syslinux │ └──tools └──update.tar.gz
リポジトリへの記録はシステムユーザー権限で実行されるため、対応するリポジトリへの書き込み権限を担当するグループを作成する必要があります。
すべてのリポジトリディレクトリに権限を設定します。
リポジトリ所有者グループを設定します。
SGIDをリポジトリディレクトリに設定します。
追加のサーバーデータ
yum.repos.d CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo epel.repo epel-testing.repo vz.repo
制御スクリプト
スクリプトは現在使用するために作成されたものであり、使用中に「ボックスのような」ものであると主張するものではありません。モニタリング
毎日のスケジュールで実行されるupdate-txt.shスクリプトは、現在の日付を含むupdate.txtファイルをモジュールディレクトリに書き込みます。データをユーザーのコンピューターに同期した後、コンピューターが最後に更新された日時を簡単に確認できます。これは、長時間にわたって過負荷にならない(ユーザーがコンピューターの電源をオフにしない)コンピューターを追跡するために必要な瞬間です。スクリプト/etc/cron.daily/update-txt.sh 更新する
スクリプトtestig2magos_kern.sh、testig2magos_mod.shおよびtestig2magos_all.shは、テストリポジトリから作業リポジトリを更新するように設計されており、手動モードでのみ実行されます。testig2magos_kern.sh-システムモジュールとカーネルディレクトリのみを更新します。testig2magos_mod.sh-ユーザーモジュールのみを更新します。testig2magos_all.sh-カーネル、iso、およびモジュールフォルダーを含む完全な更新を実行します。どのスクリプトもMagOS.iniファイルを更新しません!このファイルへの変更は手動でのみ行われます。スクリプト/root/bin/testig2magos_kern.sh スクリプト/root/bin/testig2magos_mod.sh スクリプト/root/bin/testig2magos_all.sh カスタムモジュール
カスタムモジュールを作成するための一般原則
知っておくべきこと
MagOSでモジュールを作成する場合、ユーザーとグループの作成に関連する1つの重要な機能を考慮する必要があります。モジュールを作成すると、変更されたpasswd、group、shadowなどのファイルがその中に保存されます。ただし、次のモジュールを作成してepm2xzmスクリプトで「見る」ためには、モジュール名が「NN-」テンプレートと一致する必要があります。モジュールの名前がこのテンプレートと一致しない場合、作成される後続の各モジュールは、最初のモジュールと同様に、基本的なMagOSモジュールのみに基づいて作成されます。これにより、認証ファイルが最も痛くなります。システムユーザーを作成し、異なるモジュールにインストールされたプログラムは同じUIDとGIDを受け取り、異なるモジュールで作成されたpasswdファイルは後続のレイヤーによって上書きされます。その結果、基礎となるモジュールにインストールされているプログラムは動作しなくなります。この問題を解決するには、2つの方法があります。1つのモジュール内でシステムアカウントを作成するプログラムをグループ化するか、上記のテンプレートに従ってモジュール名を設定します。モジュールを作成するスクリプトは、モジュール名として独自の名前を使用するように記述されています。99-u30-example.shというスクリプトは、99-u30-example.xzmというモジュールを作成します。モジュールの数
ベースモジュールには重複するファイルやディレクトリがないため、ベースモジュールを接続する順序は重要ではありません。ただし、ユーザーモジュールを接続する順序は重要です。ユーザーモジュールにベースモジュールファイルの修正が含まれており、AltLinuxディストリビューションへのMagOS適応の場合、このような状況が観察される場合、それらはaufsの上位レイヤーに配置され、システムレイヤーの後に接続されます。モジュールはシステムに接続され、名前でソートされるため、モジュールの名前は重要です。最後のシステムモジュールの名前は「99-」で始まるため、「99?-」で始まるユーザーモジュールの名前を使用することをお勧めします。これにより、名前でディレクトリを並べ替えると、システムモジュールの後に表示されます。特別な目的のモジュール
特別な目的を持つ2つのモジュールを区別することをお勧めします:オペレーティングシステムの現在の更新が配置されているモジュール。最初にインストールすることをお勧めします。したがって、推奨される名前は「99-u10-update」です。また、オペレーティングシステムとそのプログラムに適合した設定ファイルを含むモジュール。最後にインストールすることをお勧めします。設定を使用してモジュールを作成する場合、いくつかのルールを遵守する必要があります。- このモジュールにプログラムをインストールすることはできません。
- このモジュールでは、権限の割り当てを担当するファイル(passwd、groupなど)はありません。
これらの規則に従って、基礎となるモジュールを再組み立てするときにシステムからモジュールを除外することはできず、システム管理スクリプトがその中に配置される場合があります。モジュールの制限
モジュールの数に制限はありません(デフォルトでは最大127に設定できます)が、プログラムをモジュールに分割する際に妥協点を確認することをお勧めします。まず、基礎となるモジュールを再構築するとき、後でロードする必要があるすべてのモジュールを切断する必要があります。そして、そのようなモジュールを再構築した後、モジュール内のプログラムが更新または変更されていない場合でも、後続のすべてのモジュールを再構築することをお勧めします。これは、ライブラリの依存関係によるものです。したがって、ユーザーモジュールの数が多くならないようにする必要があります。2番目の制限は、他方では、モジュールが再構築されるコンピューターのリソース要件です。モジュールへのプログラムのインストール中、ファイルシステムはデフォルトでRAMに配置されるため、インストールされるプログラムの数は必要なRAMのサイズに直接関係します。そのため、Libreofficeをインストールするには、コンピューターに約3 GBの空きRAMが必要です。この制限を解消するには、モジュールを作成するための一時ファイルを配置するためのディレクトリを特別に準備する必要があります。したがって、使用する必要のあるモジュールの最小数は3で、最適な数は4モジュールです。モジュールの作成手順
モジュールの組み立て手順は次のとおりです。- 更新ツール/root/bin/loadupdate.shをダウンロードします。
- OSの再起動中にシステムの更新を無効にします。/etc/sysconfig/MagOSおよび/mnt/livemedia/MagOS.iniファイルで変数AUTOUPDATE = Noを設定します。
- .bak拡張子を追加して、更新されたモジュールと後続のすべてのモジュールの名前を変更します(他の拡張子は許可されません)。
- モジュールをビルドします。要求に応じて、モジュールをmagos-serverサーバーに保存します。
- 変更を正しく有効にするためにコンピューターを再起動します。
- 後続のすべてのモジュールに対して手順3〜5を繰り返します。
新しいプログラムをインストールする方法
プログラムの検索、インストール、および構成の方法は次のとおりです。- クリーンモードでコンピューターを起動します。
- 目的のプログラムを見つけてインストールします。
- accおよびWebインターフェースを含む、使用可能な構成ツールを使用してプログラムを構成します。結果を達成するために。
- , .
- .
- .
- . . . .. . .
- .
オペレーティングシステムが更新されたモジュールが最も簡単です。更新の数は、配布リリース以降の経過時間によって異なります。更新回数が重要になる場合は、iso分布イメージの更新を検討する必要があります。更新は手動モードでのみ実行され、他のすべてのモジュールの再アセンブリが必要になるため、更新期間はシステム管理者の裁量に任されています。Officeソフトウェアインストールモジュール
このモジュールには、サービスアカウントの作成を必要としないエンドユーザー向けのアプリケーションが含まれています。アプリケーションのリストはそれほど大きくはありませんが、多数の依存パッケージがあるため、このモジュールは非常に大きくなっています。ユーティリティとサーバーを備えたモジュール
このモジュールには、ユーザーサービスレコードとその依存コンポーネントの作成を必要とするすべてのユーティリティとサーバーが含まれています。次のユーティリティの一部をオフィスモジュールに転送することは非常に可能ですが、プログラムの重要なリストにもかかわらず、インストールされたプログラムの総数とインストール中に消費されるリソースは3ギガバイトを超えません。プログラムを実際にインストールすることに加えて、オペレーティングシステムの一部の要素とインストールされたプログラムは、インストールスクリプトで直接構成されます。このアプローチにより、構成ファイルの形式に変更が生じた場合、または構成ファイルのデフォルト設定が表示/変更された場合に、プログラムの更新バージョンにより正確に対応することができます。このような場合、このメカニズムは、修正された完成した構成ファイルを最終設定でモジュールに入れるよりも望ましい方法です。次に、構成設定を変更すると、モジュールの作成または更新中に構成設定がまったく検出されないという大きなリスクがあります。使用したソフトウェアスイートについてのいくつかの言葉。コンピューターソフトウェアには、特定の要件やタスクは含まれていません。エンタープライズシステムは、アプリケーションのイントラネットレベルに移行しました。コンピューターはシンクライアントとタイプライターです。この場合、値はディストリビューションキットのデフォルト値とは異なるため、タイムゾーン設定はこの構成ファイルで実行され、指定されたMagOSパラメーターの標準設定は正しく機能しません(cp / usr / share / zoneinfo / Asia / Krasnoyarsk $ NAME / etc / localtime)。AltLinuxディストリビューションの設定で奇妙なエラーが修正されています。ローカルネットワークのドメイン名がlocal(cp /etc/nsswitch.conf $ NAME / etc / nsswitch.conf sed -is / 'で終わる場合、ローカルネットワーク上のコンピューターの名前は解決されません。 ^ホスト:ファイルmdns4_minimal \ [NOTFOUND = return \] * '/'ホスト:ファイルdns mdns4_minimal \ [NOTFOUND = return \] myhostname fallback '/ $ NAME / etc / nsswitch.conf)。構成ファイルzabbix_agentdが構成されます。これにより、ユーザーのコンピューターのステータスをリアルタイムで監視できます。これは、ダウンタイムを削減するのに十分重要です。fusioninventory-agentの構成ファイルは、GLPIテクニカルサポート自動化システムと連携して動作し、機器およびソフトウェアの自動インベントリを可能にするユーティリティです。システム設定モジュール
システム設定モジュールにはインストールされたプログラムは含まれておらず、モジュールカタログの単なるパッカーです。これは主な関心事です。etc / moduleディレクトリには、次のディレクトリと構成ファイルが含まれます。sudoers -r-------- 1 root root 730 Aug 20 15:42 ./sudoers
パスワードなしで管理者にsudo操作を許可するための行が入力されました(sshプロトコルを使用して並列操作を実行するために必要)。X11 ./X11: total 8 drwxr-xr-x 2 root root 4096 Aug 21 12:42 xinit drwxr-xr-x 2 root root 4096 Aug 21 12:42 xorg.conf.d
事前設定されたキーボードロケールスイッチ:etc / X11 / xinit / Xkbmap option grp:alt_shift_toggle -variant , -layout us,ru -model pc104
キーボードのセットアップ:etc / X11 / xorg.conf.d / 00-keyboard.conf ./apt total 8 drwxr-xr-x 2 root root 4096 Jun 9 09:45 sources.list.d drwxr-xr-x 2 root root 4096 Jun 9 09:42 vendors.list.d
fusioninventory-agentをインストールするための自動インポートリポジトリが追加されました。etc / apt / sources.list.d / autoimports-p7.list rpm [cronbuild] ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/autoimports/Sisyphus/ noarch autoimports /etc/apt/vendors.list.d/autoimports-p7.list simple-key "cronbuild" { Fingerprint "DE73F3444C163CCD751AC483B584C633278EB305"; Name "Cronbuild Service <cronbuild@altlinux.org>"; } simple-key "cronport" { Fingerprint "F3DBF34AB0CC0CE638DF7D509F61FBE7E2C322D8"; Name "Cronport Service <cronport@altlinux.org>"; }
./italc total 4 drwxr-xr-x 3 root root 4096 Jul 17 18:19 keys
italcプログラムのキーがインストールされます。./lightdm total 12 -rw-r--r-- 1 root root 909 Jun 8 13:03 lightdm-gtk-greeter.conf -rw-r--r-- 1 root root 4536 Jun 8 13:18 lightdm.conf
自動ログインモードが無効になり、追加の設定が行われます。etc / lightdm / lightdm-gtk-greeter.conf [greeter] logo=/usr/share/design/current/icons/large/altlinux.png background=/usr/share/design/current/backgrounds/default.png icon-theme-name=gnome show-language-selector=false show-indicators=a11y;power
etc / lightdm / lightdm.conf [LightDM] minimum-vt=7 user-authority-in-system-dir=true log-directory=/var/log/lightdm run-directory=/var/run/lightdm cache-directory=/var/cache/lightdm xsessions-directory=/etc/lightdm/sessions [SeatDefaults] xserver-command=/usr/bin/X greeter-hide-users=true session-wrapper=/etc/X11/Xsession [XDMCPServer] [VNCServer]
./net total 8 drwxr-xr-x 3 root root 4096 Jul 16 12:35 ifaces -rw-r--r-- 1 root root 1987 Jul 16 12:44 sysctl.conf
ネットワークインターフェイスとファイアウォールは事前に構成されています。./pam.d total 4 -rw-r----- 1 root root 237 Aug 24 11:28 reboot
etc / pam.d / reboot auth required pam_nologin.so auth sufficient pam_rootok.so auth sufficient pam_console.so
./skel total 16 drwxr-xr-x 8 root root 4096 Jun 8 16:17 drwxr-xr-x 2 root root 4096 Jun 8 16:17 drwxr-xr-x 2 root root 4096 Jun 8 16:17 drwxr-xr-x 2 root root 4096 Jun 8 16:17
skelディレクトリには、環境およびユーザープログラムの事前設定を実行するファイルが含まれています。./sysconfig: total 8 -rw-r–r– 1 root root 75 Jun 8 13:11 i18n
etc / sysconfig / i18n SYSFONT=UniCyr_8x16 LANG=ru_RU.utf8
./systemd total 8 drwxr-xr-x 5 root root 4096 Aug 20 18:52 system drwxr-xr-x 2 root root 4096 Aug 20 18:51 user
デフォルトで起動されるか、配布キットにないサービスの設定は完了しました。./xdg total 4 drwxr-xr-x 2 root root 4096 Jul 17 17:59 iTALC Solutions
Italcは、元の構成とは異なる構成で使用されます。構成ファイルの多くのパラメーターが変更されるため、構成ファイルは単にデフォルトモジュールに配置されました。/ etc / xdg / iTALCソリューション/ iTALC.conf [Authentication] KeyAuthenticationEnabled=1 LogonAuthenticationEnabled=0 LogonGroups="italc-admins,italc-supporters,italc-teachers,italc-students" PermissionRequiredWithKeyAuthentication=0 PermissionRequiredWithLogonAuthentication=0 PrivateKeyBaseDir=$GLOBALAPPDATA/keys/private PublicKeyBaseDir=$GLOBALAPPDATA/keys/public SameUserConfirmationDisabled=0 [DemoServer] Backend=0 Multithreaded=1 [Logging] LimittedLogFileSize=0 LogFileDirectory=$TEMP LogFileSizeLimit=-1 LogLevel=4 LogToStdErr=1 LogToWindowsEventLog=0 [Network] CoreServerPort=11100 DemoServerPort=11400 FirewallExceptionEnabled=1 HttpServerEnabled=0 HttpServerPort=5800 [Paths] GlobalConfiguration=$APPDATA/GlobalConfig.xml PersonalConfiguration=$APPDATA/PersonalConfig.xml SnapshotDirectory=$APPDATA/Snapshots [Service] Arguments= Autostart=1 HideTrayIcon=0 LockWithDesktopSwitching=1 [VNC] CaptureLayeredWindows=1 LowAccuracy=1 PollFullScreen=1
スクリプト
システムを設計するとき、システム管理の自動化に特別な注意が払われました。その目的は、その後のメンテナンスの人件費を削減することでした。この目的のために、追加のスクリプトのセットが作成されました。これらは条件付きで2つのカテゴリに分類できます。メンテナンスとシステム管理を自動化するスクリプトとモジュールを作成するスクリプトです。モジュール保守スクリプトの主要部分については上記で説明しましたが、ここで説明するライブラリ部分は「オーバーボード」のままです。Magos-patchesアドオン
産業用の操作では、MagOSを使用するためのタスクと条件がわずかに異なるため、MagOSコア自体の操作を自動化する手段が必要です。以下のスクリプトは、理論的にはMagOSパッチに組み込まれるべきですが、ここではそれらを個別に検討します。起動スクリプト
スクリプト/usr/lib/magos/rc.halt/05-update.shは、コンピューターの電源を切るか再起動すると、オペレーティングシステムを自動的に更新するように設計されています。スクリプトが機能するために、3つのパラメーターがMagOS.ini構成ファイルに追加されました。/usr/lib/magos/rc.halt/05-update.sh ここで:AUTOUPDATEパラメーターは、電源がオフになったときに更新するかどうかを示します。UPDATE-更新が実行されるディレクトリの列挙。SRCUPDATE-更新が実行されるサーバーアドレスとリポジトリ。アドレスは、IPアドレスまたはDNSサーバーの名前として指定できます。ユーザーのコンピューターにオペレーティングシステムをインストールするときに、同じパラメーターが関係します。スクリプトのソースコード:/usr/lib/magos/rc.halt/05-update.sh NTPサーバーを構成する既存のスクリプト/usr/lib/magos/rc.preinit.d/21-ntpの修正が実行されました。どうやら、この部分は特にAltLinuxディストリビューションに依存しているため、将来修正される可能性があります。/usr/lib/magos/rc.preinit.d/21-ntp OSインストールスクリプト
特別なスクリプトを使用してOSをインストールすると、すべてのインストールで統一性を実現し、この作業を実行する技術者のミスを排除し、このプロセスを何度も高速化できます。スクリプト/usr/share/magos/install/magosinstall.shは特殊です。ハードディスクパーティションの作成とフォーマットを実行します。リポジトリセクションをmagos-serverサーバーからコンピューターのローカルドライブにコピーし、ブートローダーをインストールします。/usr/share/magos/install/magosinstall.sh スクリプトテキストから、OSがインストールされているメインパーティションに30 Gbが割り当てられ、スワップ用に6 Gbが割り当てられ、残りは変更およびホームを含むデータセクション用に予約されていることがわかります。これまでのところ、これらのパラメーターを構成ファイルに、または少なくともファイルの先頭に配置できる変数は使用されていません。スクリプトへのパスが誤って難しく選択されることはありません。これにより、プログラムが誤って起動するのを防ぐことができます。ADの包含スクリプト
ADSでコンピューターの電源を入れる方法は、オペレーティングシステムによって異なります。このタスクを完了するために、AltLinuxは独自のプログラムを作成しました。ただし、その機能は非常に大きく、この操作の実行を簡素化するために、独自のスクリプトが実装されました。 2つのスクリプトがあり、1つはコンソールモードで接続し、2つ目はTCLを使用してグラフィカルモードで動作します。グラフィックもテスト済みですが、コンソールモードを使用することをお勧めします。オペレーティングシステムをインストールすると、コンピューターのホスト名はMagOSになります。コンピューターの大量インストールでは、特にコンピューターがADに含まれている場合、これは重要です。したがって、スクリプトは2つの問題を同時に解決します。コンピューターの名前を変更し、ADに含めることです。短いメモ:コンピューター名はMagOS.iniファイルでは定義されていませんが、これらのスクリプトを使用して/ etc / sysconfig / magosファイルに直接入力されます。オペレーティングシステムの起動時に実行される他のすべてのMagOSスクリプトは、ファイル/ etc / sysconfig / magosのコンピューター名を使用します。/usr/share/magos/ad_join/ad_join.pl ドメイン名とレルムは、変数$ domainおよび$ realmのスクリプトで直接指定されることに注意してください。おそらくこれは正しい決定ではありません.../usr/share/magos/ad_join/ad_join_x.pl ドメインにコンピューターを入力する操作があるため、ドメインから出力する操作が必要です。しかし、MagOSの場合、これは必要ありません。このためには、変更で対応するファイルを削除するだけで十分です。ADの問題を修正する
コンピューターをADSに接続した後、このような問題を発見しました。コンピューターをロードした後、winbindはユーザーやグループのリストを含むADに関する情報でキャッシュを埋めるのに長い時間がかかります。同時に、内部スケジュールに従ってフリーズおよび再起動する場合がありますが、これには多くの時間がかかります(最大で30分)。この問題は、ADの内部構造の組織に関連している場合もあれば、すべての実装に共通している場合もあります。十分に空のADデータベースには問題がないことがわかっているだけです。しかし、このような問題があり、それを解決するために、次の「松葉杖」が発明されました。経験的に、ADドメインを検出した後にwinbindを再起動すると、問題の解決に役立つことが明らかになりました。したがって、次のプログラムはsystemdを介してサービスとして起動し、winbindドメインの検出を監視してから、winbindを再起動して終了します。ユーザーのリストのコンパイルの遅延は、この場合、1〜2分です。ユーザーが自分の名前とパスワードをすぐに入力しないと、実際にはこの問題の存在に気付きません。別の機能が同じスクリプトに割り当てられます-magos-patchesに存在するスクリプトはMagOS.iniで指定された1人のユーザーのホームフォルダーのみを更新するため、ADユーザーのホームフォルダーのシステムファイルを更新します-システム管理者、および仮想ユーザーフォルダーの更新はまったく提供されません。このスクリプトは、ドメインユーザーのホームフォルダーにない非表示のシステムファイルとディレクトリを/ etc / skelフォルダーからコピーし、フォルダーの所有者権限を割り当てます。したがって、ユーザーのホームフォルダーの設定を更新するには、対応するファイルを削除し、winbind-restartスクリプトを使用してサービスを再起動する必要があります。正しい操作に必要な条件は、指定された時間にシステムにユーザーが登録されていないことです。ただし、コンピューターユーザーの設定を更新するサービスとしてのスクリプトを改善する必要があることに注意してください。/ usr / sbin / winbind-restart /etc/systemd/user/winbindrestart.service [Unit] Description=Samba Winbind Daemon restart from mydomain After=winbind.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/sbin/winbind-restart [Install] WantedBy=multi-user.target
システム管理(/ root / bin)
これらのスクリプトは、産業用アプリケーション向けのAltLinuxディストリビューションに基づいてMagOSシステムを制御するように設計されています。何らかの理由でOSの強制更新が必要な場合、次の2つのスクリプトが使用されます。最初のものはオペレーティングシステムを更新し、2番目のものは設定ファイルMagOS.iniを更新します。オペレーティングシステム/root/bin/updatemagos.shを強制的に更新するためのスクリプト。操作が完了すると、オペレーティングシステムの自動オーバーロードが続きます。/root/bin/mnt.shは、ディスクをユーザーデータおよびオペレーティングシステムの保存に接続するための非常に単純な補助スクリプトです。loadupdateおよびsaveupdateスクリプトは、MagOSサーバーからテストマシンにモジュールとモジュールオリジナルを生成するためのスクリプトをロードし、それらに変更を加えた後にサーバーにアップロードするように設計されています。OSメンテナンススクリプト
オペレーティングシステムのサービスプロセスでは、たとえば、すべてのコンピューターで一度にコマンドを実行するなど、コンピューターの大量サービスのタスクが発生します。この問題を解決するためのオプションの1つは、sshプロトコルを使用し、そこで対応するコマンドを実行するコンピューターへの並列アクセスです。 hostalt-create.shスクリプトは普遍的ではなく、AltLinuxアセンブリに基づいてMagOSがインストールされているコンピューターのリストをコンパイルすることを目的としています。コンピューターを検出するには、名前の末尾が-aである必要があります。コンピューターのリストが保持されるため、徐々に拡張できます。一般に、このソリューションは電源が入っているコンピューターに対してのみ実行されるため、本格的なソリューションとは言えません。次に、スクリプトを使用するには、パスワードなしのタスクでsudoを設定する必要があります。コンピューターへのアクセスに使用されるユーザー名として、管理者アカウントが使用されます; AltLinuxアセンブリーでは、これはalttlinuxアカウントです。/root/bin/hostalt-create.sh モジュール作成管理スクリプト
モジュールの作成を管理するためのスクリプトは、カスタムモジュールの作成とそれらのmagosサーバーへの配置を自動化するように設計されています。スクリプトは、プロセスを自動化する構成ファイルとスクリプトのlibexecライブラリを含むプログラムの複合体であり、実際には、モジュールをアセンブルし、受信したモジュールをゴミから削除し、モジュールプログラムを調整するスクリプト自体です。スクリプトと構成ファイルはディスクのルートディレクトリにありますが、任意の便利な場所に配置できます。前提条件は、それらが配置されているファイルシステムがUnix ACLをサポートする必要があることです。つまり、Posix互換である必要があります。モジュールアセンブリシステム設定ファイル/update/conf/devel.conf。 DISTTYPE="testing" DISTNAME="AltLinux" ARCH="i586" UPDETESRV=yes SERVER=192.168.0.3 USER=altlinux
ここ:DISTTYPE - magos -serverリポジトリディレクトリを指します。DISTNAME-配布ディレクトリの名前。ARCH-システムアーキテクチャ。上記の3つのパラメーターはすべて、モジュールを含むフォルダーをサーバー上およびコンピューター内に配置するパスを決定します。UPDETESRV-サーバーリポジトリを自動的に更新するかどうか。SERVER-magos-serverサーバーのアドレスまたはURL。USERは、リポジトリへの書き込み権限を持つmagos-serverユーザーの名前です。このユーザーのホームフォルダーに、対応するリポジトリフォルダーへのシンボリックリンクを作成する必要があります。モジュール作成スクリプトの例:/update/99-u50-example.sh モジュール作成スクリプト自体から呼び出されるスクリプト。モジュールがepm2xzmコマンドによって構築された後に残ったゴミをクリーンアップします。スクリプトは、設定でモジュールを無効にし、古いモジュールのバックアップコピーを作成します。モジュールの冗長性の技術は次のとおりです。変更するモジュールの名前を変更するには、.bak拡張子を追加します。将来、モジュール作成スクリプトを数回実行して、発生したエラーを修正できます。毎回、以前のバージョンのモジュールの名前が変更され、拡張子.oldが付けられます。作業が完了したら、不要なコピーを削除する必要があります。スクリプトは、モジュールをモジュールディレクトリに転送し、ネットワークリポジトリにコピーします。アクセス権を設定し、モジュールの再接続を実行します。magosプログラムとオペレーティングシステムの動作を修正する追加のスクリプト
MagOSは、/ tmpおよび/ var / tmpフォルダーをtmpfsファイルシステムに接続するためのメカニズムをまったく正しく実装していません。/ tmpをtmpfsファイルシステムに接続するためのユニットsystemdがありますが、含まれていません。これを有効にするために、シンボリックリンクが/etc/systemd/system/local-fs.target.wantsディレクトリに配置されました。 tmp.mount -> /lib/systemd/system/tmp.mount var-tmp.mount -> ../var-tmp.mount
ユニットvar-tmp.mountは単に実装されていません。MagOSは、VARTMPFSオプションをオンにすると、シンボリックリンク/ var / tmp→/ tmpを作成します。CUPSプリントサーバーの場合、これは有効ではないため、適切なユニットを自分で実装する必要があります。/etc/systemd/system/var-tmp.mount [Unit] Description=Temporary Directory Documentation=man:hier(7) Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems DefaultDependencies=no Conflicts=umount.target Before=local-fs.target umount.target [Mount] What=tmpfs Where=/var/tmp Type=tmpfs Options=mode=1777,strictatime
/ var / tmpディレクトリをtmpfsファイルシステムに接続するためのユニット。/etc/systemd/system/ntp-units.d/ntpd.service [Unit] Description=Network Time Service After=syslog.target network.target [Service] EnvironmentFile=/etc/sysconfig/ntpd ExecStart=/usr/sbin/ntpd -d $NTPD_ARGS [Install] WantedBy=multi-user.target
技術者への指示
MagOSモードでAlt Linuxをインストールします。- ネットワークからダウンロードするBIOSを選択します。
- AltLinuxをダウンロードします。
- デフォルトのパスワードを使用してaltlinuxとして登録します。
- ユーザーデータを保存する必要がある場合は、ネットワークに接続してデータをネットワークに保存します。ハードドライブ上のすべてのデータが破壊されます!
- コンソールを開く
- 管理者権限を取得します。
$ su - Password:
パスワードを入力するとき、文字は表示されません。 これは正常です。
mydomainネットワークのデフォルトパスワードが使用されます。
- システムをインストールするには、Enterキーを3回押す必要があります。^ Cを押すと、最初の段階でインストールを拒否できます。
- コンピューターを再起動します。過負荷が発生しない場合は、ハードウェアリセットを実行します。
- ユーザーaltlinuxとしてユーザー環境に入ります。
- コンソールを開く
- 上記の説明に従って管理者権限を取得します。
- 次のコマンドを使用して、コンピューターをドメインに入力します。
どこで:
ホスト名 -コンピューターの名前。同時に、コンピューターの名前が変更されます。ユーザー名 -mydomain.localドメイン管理者の名前。password-ドメイン管理者mydomain.localのパスワード。コマンドが正しく実行されると、次のように書き込まれます。 Joined ' ' to dns domain 'mydomain.local'
他のメッセージは無視できます。- ドメインへのコンピューター接続を確認します。
システムはネットワークリソースをキャッシュするのに時間がかかるため、ドメインへの最初のエントリは数分遅れる可能性があります。ネットワークの負荷に依存します。
コマンドの結果として、すべてのドメインユーザーのリストが表示されます。 - コンピューターを再起動します。
- ドメインユーザーアカウントを使用してコンピューターに登録します。
- ネットワークリソースを接続します。そのためには、ファイルブラウザーを開き、その中のネットワークリソース(サイドタブの「new_drive」など)を開きます。ユーザーパスワードを入力します。
「永久に記憶する」ラジオボタンを選択します。そうしないと、ユーザーはコンピューターに新しいログインをするたびにパスワードを入力する必要があります。 - コンピューター上のユーザーデータを回復します。
- コンピューターのBIOSでネットワークブートを無効にします。
デスクトップショートカットの削除
目的のプログラムを右クリックします。デスクトップへのショートカットを送信します。必要に応じて、ショートカットのプロパティを開き、必要なパラメーターを入力します。著者:Goroshkin Anton Nikolaevich、Fiskov Mikhail Mikhailovich。