Upload
shinichiro-ohhara
View
9.856
Download
1
Embed Size (px)
DESCRIPTION
勉強会の資料です。 塩尻インキュベーションプラザ、松本ソフト開発センター、にてオープンな勉強会を実施しています。
Citation preview
CentOS 7 入門
新しく生まれ変わったCentOS
自己紹介
大原 慎一郎 https://twitter.com/ohhara_shiojiri
(有)トラストネットワークス 塩尻インキュベーションプラザ108号室
・長野県塩尻市に活動拠点を置く、市内プログラマー有志による団体・「オープンな環境でオープンな活動を目指す」を合言葉に集う・CoderDojo Shiojiri 開催 ・小学生高学年向けRuby教室開催・IT技術書をリブライズで貸し出し、また市立図書館と協力
http://shiojiri-osslabo.com/
アジェンダ
● CentOSについて
● RHEL 7 について
● LAMP環境について
● インストールについて
● 検証環境
● systemd● NetworkManager● iproute2
CentOSについて
● Red Hat Enterprise Linux(RHEL)クローン
他に学術向けにScientific Linux
● RHELから商標や商用のパッケージを除外
● Community ENTerprise Operating System
● Red Hat社の有償サポートを必要としない用途
● 2014年1月Red Hat社が支援表明
● RHELと高い互換性
RHEL 7 について
● 2014年6月10日リリース
● 10年間サポート 2024年6月30日まで
● Fedora19をベース
● カーネルバージョン 3.10
● 64bitのみ x86_64/ppc64/s390sサポート
● ext4 → xfs 最大500TBサポート
● GRUB Legacy → GRUB2 UEFIサポート
LAMP環境について
● LAMP環境としてのCentOS○ 従来システムとの互換性と安定性を重視して、標準パッ
ケージのバージョンは古いままでした。○ 古いバージョンのサポートが続々と終了している。○ 性能向上、機能向上、セキュリティ向上が求められる。○ RHEL7(CentOS7)から新しいバージョンを採用!
● CentOS6.5のLAMP環境○ Apache → 2.2.15 開発終了 新版移行を推奨○ MySQL → 5.1.73 開発終了 新版移行を推奨○ PHP → 5.3.3 開発終了 新版移行を推奨○ Perl → 5.10.1○ Python → 2.6.6
LAMP環境について
● CentOS7のLAMP環境○ Apache → 2.4.6 最新機能の安定版○ MySQL → MySQL5.5互換のMariaDB 5.5.37○ PHP → 5.4.16 最新のPHPは5.6.0○ Perl → 5.16.3 最新のPerlは5.20.0○ Python → 2.7.5 最新のPythonは3.4.1○ 各バージョンは2014年9月10日時点です。
● CentOS6.5でLAMP環境の新バージョン構築は大変面倒なので、CentOS7を利用しましょう。
● CentOS6.5からCentOS7への移行が公式サポートされています。
インストールについて
● 従来通りISOファイルが用意されています。○ http://www.centos.org/download/○ 標準で3.9GB 最大のEverythingで6.6GB!○ 最小のminimalで566MB○ 高速ネット環境があれば、Netinstallで362MB
● インストーラーのanaconda○ 従来はインストールの順を追ってオプションを設定してい
たが、予めオプションを選択してからインストール実行が
出来るようになった。
インストールについて
● クラウド環境用のイメージを予定しています。○ AWS等のパブリッククラウド○ OpenStack等のプライベートクラウド○ Docker
● クラウド利用者を想定して、VagrantのBOXファイルにて今回は学習して行きます。
検証環境
● VirtualBox 4.3.16(2014/09/11時点)○ https://www.virtualbox.org/wiki/Downloads○ CPUの仮想マシン支援機能が必要(BIOS設定)○ Windowsの場合、システムのPATH設定が必要
■ 4.2系 C:\Program Files\Oracle VM VirtualBox■ 4.3系 C:\Program Files\Oracle\VirtualBox
検証環境
● Vagrant 1.6.5(2014/09/05時点)○ http://www.vagrantup.com/downloads.html○ Windowsの場合、システムのPATH設定が必要
■ C:\HashiCorp\Vagrant\bin■ C:\HashiCorp\Vagrant\embedded\mingw\bin
○ コマンドプロンプトの代わりにmingw32が使用できる。■ C:\HashiCorp\Vagrant\embedded\mingw\mingw32env.cmd
● BOXファイル CentOS 7○ https://dl.dropboxusercontent.com/s/w3lbekm7eunrskm/centos-7.0-x86_64.box○ CentOS7.0 x86_64 minimal + Puppet + VirtualBoxGuestAddtions 4.3.14
検証環境
● Vagrantfileを編集してIPアドレスを割り当てたノードで起動させます。
● Vagrant入門の資料を参照して下さい。○ http://www.slideshare.net/ShinichiroOhhara/solavagrantver2
Virtual Box 環境
検証環境
クライアント側Ubuntu 14.04
ホストPC
ルーター192.168.33.1
サーバー側CentOS7
192.168.33.70
systemd
● サービス管理がsystemdへ変更になりました。○ システムの起動時、シャットダウン時など、サービスプロ
セスの管理システムが新しくなりました。
● 従来はUNIX由来のinitにて管理○ UNIXのinitには、SystemV系とBSD系がある○ RHEL5(CentOS5)まではSysVinit○ /etc/inittabに設定されたランレベルで管理○ RHEL6(CentOS6)からubuntuと同じUpstart○ /etc/init/以下の設定ファイルで管理○ UpstartはSysVinit互換○ 互換性のあるシェルスクリプトで動作を設定
systemd
● initより変わったこと○ Upstartより並列度の高い高速な起動と終了○ シェルスクリプトではなく設定ファイルによる管理○ サービスプロセス起動が様々な方法で柔軟に出来る○ cgroupsによるサービスプロセスのリソース管理
● Unit○ サービスプロセスの設定ファイル○ systemdがUnitの設定で処理する。○ 他のUnitと連携(依存と起動順)して処理が出来る。○ 拡張子によって様々なUnitの種類がある。○ 設置場所は、/etc/systemd/system○ インストール初期設定は、/usr/lib/systemd/system
systemd
● コマンド○ systemctl オプション Unit名○ 従来と同じserviceも使用できます。
● サービスプロセスの起動と停止○ Unitの拡張子は、「.service」○ sytemctl [start/stop/restart] Unit名○ reloadオプションはUnitに定義されている場合のみ
● Unit設定の変更○ Unit設定を変更した時は、systemdへ反映させます。○ systemctl daemon-reload
● プロセスの状態確認○ systemctl status Unit名
systemd
● 自動起動の設定○ systemctl [enable/disable] Unit名○ Unitの連携(依存)設定が変更されます。
○ Unit設定ファイルで指定した「WantedBy=」ディレクトリ
へのシンボリックリンク
● Wants○ 連携(依存)するUnitを設定します。○ Unit設定ファイルの「Wants=」○ ディレクトリ「Unit名.wants」へシンボリックリンクを作成
● Requires○ WantsはUnit間の同時起動が失敗しても再実行します。
○ RequiresはUnit間の同時起動が失敗したら終了しま
す。
systemd
● 自動起動の確認○ systemctl list-unit-files --type=service○ enabled → 「Wants=」記載あり、有効○ disabled → 「Wants=」記載あり、無効○ static → 「Wants=」記載無し
● 現在のUnit状態の確認○ systemctl list-units --type=service○ list-unitsオプションを省略出来る。
● Unitの連携関係の確認○ systemctl list-dependencies○ ツリー表示で連携(依存と起動順)関係を表示する。
systemd
● target○ 複数のUnitをまとめて、グループ化できる。○ Unitの拡張子は、「.target」○ 関係する複数のUnitの連携(依存と起動順)を管理。○ target自体は実行しない。
○ 従来のランレベルが無くなり、Unitのtargetに変わりまし
た。○ 従来のランレベル0から6と違い、自由に設定出来る。
● システムの起動状態の変更方法○ /etc/systemd/system/default.target○ シンボリックリンク先を変更することで、ランレベル相当
を実現しています。
systemd
● 従来のランレベルとの対比○ runlevel0からrunlevel6のシンボリックリンクもある。
従来のランレベル targetファイル名 状態内容
runlevel 0 poweroff.target 停止
runlevel 1 rescue.target シングルユーザーモード
runlevel 2 multi-user.target マルチユーザーモード
runlevel 3 multi-user.target マルチユーザーモード
runlevel 4 multi-user.target マルチユーザーモード
runlevel 5 graphical.target GUIマルチユーザーモード
runlevel 6 reboot.target 再起動
systemd
● その他のUnit○ 「service」「target」の他にもUnitの種類があります。
● mount, swap○ /etc/fstabから自動作成されます。
● device○ デバイスが認識すると自動作成されます。
● path○ パスを監視して、ファイルに応じてサービスを起動。
● socket○ ソケットを監視して、接続に応じてサービスを起動。
NetworkManager
● ネットワークデバイス設定○ /etc/sysconfig/network-scipts/にある設定ファイルを直
接編集するのではなく、NetworkManagerを使用する。○ 従来の設定ファイルも利用できる。
○ Ethernetインターフェースは標準では無効になってい
る。
● NetworkManagerフロントエンド○ GUIのGNOME環境で操作します。
● nmtui○ テキスト画面で対話的にネットワーク設定します。
NetworkManager
● nmcli○ コマンドラインでネットワーク設定します。○ サーバー管理者向けに、ここではnmcliを学習します。
● ホスト名の変更○ nmcli general hostname ホスト名○ bmcli g ho ホスト名 と省略できる。○ /etc/hostnameファイルに設定される。
NetworkManager
● nmcli device○ 物理デバイスの管理
● デバイスの一覧○ nmcli device○ nmcli d と省略出来る。
● デバイスの詳細○ nmcli device show デバイス名○ nmcli d s と省略出来る。
NetworkManager
● nmcli connection○ 接続設定の管理
● 接続状況の一覧○ nmcli connection○ nmcli c と省略できる。○ nmcli --fields 項目 connection で検索表示も出来る。
● 接続の詳細○ nmcli connection show 名前もしくはUUID○ nmcli c s 名前もしくはUUID と省略できる。
○ 名前にスペースがあるときは、「”」ダブルクォーテーショ
ンで囲んで指定する。○ nmcli c s “Wired connection 1”
NetworkManager
● 接続の有効化○ nmcli connection up 名前もしくはUUID
● 接続の無効化○ nmcli connection down 名前もしくはUUID
● 接続の動作確認○ nmcli c s 名前もしくはUUID でIPアドレスを確認○ ping で疎通を確認○ nmcli c d 名前もしくはUUID で無効化○ ping で疎通出来ないのを確認○ nmcli c u 名前もしくはUUID で有効化○ ping で疎通を確認
NetworkManager
● 設定の変更○ nmcli connection modify 名前 項目 設定値○ nmcli c m と省略できる。
● IPアドレスとゲートウェイの変更○ DHCPを手動設定へ変更します。○ nmcli c m 名前 ipv4.method manual○ nmcli c m 名前 ipv4.addresses "IPアドレス/ネットマス
ク ゲートウェイ"○ 設定変更しただけでは、設定値は有効にならない。○ 接続をdown/upした後で設定値が有効になる。
NetworkManager
● DNSの変更○ nmcli c m 名前 ipv4.dns "DNSサーバーのIPアドレス"
● 設定値の追加と削除○ 既存の値に追加する場合は、項目名の前に「+」を付け
る。
○ 既存の値から削除する場合は、項目名の前に「ー」を付
ける。○ nmcli c m 名前 +項目名 値○ nmcli c m 名前 -項目名 値
● DHCPの設定○ nmcli c m 名前 ipv4.method auto
iproute2
● ネットワーク設定コマンドの変更○ デバイス名が「eth番号」から「en名称」へ変更になりまし
た。○ 従来のifconfig,route,arp,netstatコマンドは非推奨。○ 標準では使用できません。
○ 別途、net-toolsパッケージをインストールすれば使用出
来ます。○ yum install net-tools○ 新しいiproute2パッケージのコマンドを推奨します。○ 古いコマンドは忘れて新しいコマンドを学習しましょう。
iproute2
● ip addr show○ ipconfigに相当するコマンド。○ デバイスのアドレスを表示する。○ 処理パケットの統計は表示されない。
● ip -s link○ ipconfigに相当するコマンド。○ 接続の処理パケットの統計を表示する。
● ip route○ routeに相当するコマンド。○ ルーティングテーブルを表示する。
iproute2
● ip neigh○ arpに相当するコマンド。○ デバイスのMacアドレスを表示する。
● ipコマンド○ 各ネットワーク設定を変更することが出来ます。○ デバイスをdown/upする事無く、設定は即反映します。○ 設定値は保存されません。
● ss○ netstatに相当するコマンド。○ サービスの使用状況を表示する。