IT分野の今日では、自動化がホットなトピックであり、すべての組織が Puppetなどの自動化ツールの採用を開始しています。 、 Ansible 、シェフ 、 CFEngine 、フォアマン およびカテッロ 。これらのツールのうち、Ansibleは、UNIXおよびLinuxのようなシステムを管理するほとんどすべてのIT組織の最初の選択肢です。この記事では、Debian10Severにansibleツールをインストールして使用する方法を示します。
マイラボの詳細:
- Debian 10 – Ansibleサーバー/コントローラーノード– 192.168.1.14
- CentOS 7 – Ansibleホスト(Webサーバー)– 192.168.1.15
- CentOS 7 – Ansibleホスト(DBサーバー)– 192.169.1.17
また、AnsibleServerを使用してLinuxサーバーを管理する方法についても説明します
Debian10サーバーへのAnsibleインストール
Debian 10システムには、root権限またはsudo権限のいずれかを持つユーザーがいると想定しています。私のセットアップでは、sudo権限を持つ「pkumar」という名前のローカルユーザーがいます。
Ansible2.7パッケージはデフォルトのDebian10リポジトリで利用できます。コマンドラインから次のコマンドを実行して、Ansibleをインストールします。
$ sudo apt update $ sudo apt install ansible -y
以下のコマンドを実行して、Ansibleバージョンを確認します
[email protected]:~$ sudo ansible --version
最新バージョンのAnsible2.8をインストールするには、最初にAnsibleリポジトリを設定する必要があります。
次のコマンドを次々に実行します
$ echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" \ | sudo tee -a /etc/apt/sources.list $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 $ sudo apt update $ sudo apt install ansible -y $ sudo ansible --version
Ansibleを使用したLinuxサーバーの管理
Ansibleコントローラーノードを使用してLinuxのようなサーバーを管理するには、次の手順を参照してください。
ステップ:1)Ansibleサーバーとそのホスト間でSSHキーを交換します
ansibleサーバーからsshキーを生成し、ansibleホスト間でキーを共有しました
$ sudo -i # ssh-keygen # ssh-copy-id [email protected] # ssh-copy-id [email protected]
ステップ:2)AnsibleHostsインベントリファイルを作成する
ansibleをインストールすると、/ etc / hostsファイルが自動的に作成されます。このファイルでは、ansibleホストまたはそのクライアントについて説明します。ホームディレクトリに独自のAnsibleホストインベントリファイルを作成することもできます
続きを読む:Ansibleの静的および動的ホストインベントリを管理する方法
以下のコマンドを実行して、ホームディレクトリにアンシブルホストインベントリを作成します
[email protected]:~$ vi $HOME/hosts [Web] 192.168.1.15 [DB] 192.168.1.17
ファイルを保存して終了します
注: 上記のhostsファイルでは、ホスト名またはFQDNも使用できますが、そのためには、ホスト名またはfqdnによってansibleホストに到達可能でアクセス可能であることを確認する必要があります。
ステップ:3)デフォルトのansibleモジュールをテストして使用する
Ansibleには、ansibleコマンドで使用できる多くのデフォルトモジュールが付属しています。例を以下に示します。
構文:
#ansible -i
場所:
- -i〜/ hosts :Ansibleホストのリストが含まれています
- -m: -mの後に、pingやshellなどのansibleモジュールを指定します
- <ホスト>: Ansibleモジュールを実行するAnsibleホスト
ansiblepingモジュールを使用してping接続を確認する
$ sudo ansible -i ~/hosts -m ping all $ sudo ansible -i ~/hosts -m ping Web $ sudo ansible -i ~/hosts -m ping DB
上記のコマンドの出力は次のようになります:
シェルモジュールを使用してansibleホストでシェルコマンドを実行する
構文: #ansible -i
例:
[email protected]:~$ sudo ansible -i ~/hosts -m shell -a "uptime" all 192.168.1.17 | CHANGED | rc=0 >> 01:48:34 up 1:07, 3 users, load average: 0.00, 0.01, 0.05 192.168.1.15 | CHANGED | rc=0 >> 01:48:39 up 1:07, 3 users, load average: 0.00, 0.01, 0.04 [email protected]:~$ [email protected]:~$ sudo ansible -i ~/hosts -m shell -a "uptime ; \ df -Th / ; uname -r" Web 192.168.1.15 | CHANGED | rc=0 >> 01:52:03 up 1:11, 3 users, load average: 0.12, 0.07, 0.06 Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 13G 1017M 12G 8% / 3.10.0-327.el7.x86_64 [email protected]:~$
上記のコマンド出力は、ansibleコントローラーノードが正常にセットアップされたことを確認します
サンプルのNGINXインストールプレイブックを作成しましょう。以下のプレイブックは、Webホストグループの一部であるすべてのサーバーにnginxをインストールしますが、私の場合、このホストグループの下に1台のcentos7マシンがあります。
[email protected]:~$ vi nginx.yaml --- - hosts: Web tasks: - name: Install latest version of nginx on CentOS 7 Server yum: name=nginx state=latest - name: start nginx service: name: nginx state: started
次のコマンドを使用してプレイブックを実行します
[email protected]:~$ sudo ansible-playbook -i ~/hosts nginx.yaml
上記のコマンドの出力は次のようになります
これにより、Ansibleプレイブックが正常に実行されたことを確認できます。これはすべて記事からのものです。フィードバックとコメントを共有してください。