Ansibleの一般的なコマンドと基本構成の概要(6つのマシン例)

Ansibleとは

Ansibleは、2013年に発売されたIT自動化およびDevOpsソフトウェアです。2015年にRedhatに買収されました。Pythonに基づいて開発され、多くの古い運用および保守ツールの利点を組み合わせて、バッチオペレーティングシステム構成、バッチプログラム展開、バッチ実行を実現します。コマンドおよびその他の機能。

Ansibleは次のことを実現できます。

1.APPの自動展開
2.構成アイテムの自動展開
3.自動継続的デリバリー
4.自動(AWS)クラウドサービス管理

なぜansibleを選ぶのか

構成管理ソフトウェアの選択は、いくつかの点から長所と短所を比較検討することに他なりません
。1。アクティブ性(コミュニティ)
2。学習コスト
3.使用コスト
4.コーディング言語
5.パフォーマンス
6.広く使用されているかどうか

Ansibleの利点

1.使用するのにSSHとPythonのみが必要
2.クライアントなし
3.Ansibleは強力で、モジュールが豊富
4.使いやすく、しきい値が低い
5. Python開発に基づいて、二次開発を行うのが簡単
6.より多くの企業を使用するコミュニティがアクティブです。

ansible機能1

1.モジュラー設計、完全な特定のタスクへの呼び出し、特定のモジュール
2.実装は、Python、言語に基づいて
paramiko-
PyYAMLと(半構造化言語)
-Jinja2
そのモジュールは、JSONなどの標準的な出力形式をサポートし、任意のプログラミング言語で書き直すことができます。

ansible機能2

1簡単な導入
2マスタースレーブモードの作業
3カスタムモジュールの
サポート4プレイブックのサポート
5使いやすさ
6多層展開の
サポート7異種IT環境のサポート

作業過程

ansibleの一般的な実行プロセスは
、構成を読み取ります→マシンとグループのリスト全体を取得します→host-patternを使用してマシンリストをフィルタリングします→パラメーターに従って実行モジュールと構成を決定します→ランナー実行リターン→出力、終了

================================================== ====================================

ansibleインストール

ソフトウェアの依存関係
管理ホストの
場合-Python2.6またはPython2.7 ansibleは、次のモジュールを使用する必要があります。これらのモジュールはすべてインストールする必要があります
1.paramiko 2.PyYAML 3.Jinja2 4.httplib2 5.six


管理対象ホストの場合-AnsibleはデフォルトでSSHプロトコルを介してマシンを管理します

  1. AnsibleはデフォルトでSSHプロトコルを介してマシンを管理します
  2. 管理対象ホストはsshサービスを開き、ansibleホストがログインできるようにする必要があります。3。Python2.5以降
    も管理対象ノードにインストールする必要があります
    。4。管理対象ノードでSElinuxがオンになっている場合、libselinux-pythonはインストール済み

実機管理

Yumのインストール

1.ソフトウェアパッケージを実マシンのFTP共有ディレクトリにコピーし
ます
。2 。インデックスファイルcreaterepo / var / ftp /ファイル名
createrepo--updateを更新します。

インストールと検証

1.ansibleホスティングホストでyum構成ファイルを構成します2.yum installansibleを
インストールします3.ansible--versionを
確認します


6台の仮想マシン、2CPU 1.5G以上のメモリ、10G以上のハードディスク、1つのネットワークカードを起動します
CPU名 IPアドレス キャラクター
ansible 192.168.1.40 管理ホスト
web1 192.168.1.41 ホスティング
web2 192.168.1.42 ホスティング
db1 192.168.1.43 ホスティング
db2 192.168.1.44 ホスティング
キャッシュ 192.168.1.45 ホスティング

ホストの定義とグループ化
  • ansibleをインストールした後、いくつかの簡単なタスクを実行できますansible構成ファイルの検索順序
  • まず、ANSIBLE_CONFIG変数で定義された構成ファイルを検出します
  • 次に、現在のディレクトリにある./ansible.cfgファイルを確認します
  • 現在のユーザーのホームディレクトリにある〜/; ansible.cfgファイルをもう一度確認してください
  • 最後に、/ etc / ansible /ansible.cfgファイルを確認します
  • etc / ansible / ansible、cfgはansibleのデフォルトの設定ファイルパスです

ansible管理マシンを構成する

]# eip 40
]# echo ansible > /etc/hostname
]# hostname ansible
]# reboot
]# vim /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/centos-1804"
enabled=1
gpgcheck=0


[ansible]
name=ansible
baseurl="ftp://192.168.1.254/ansible"
enabled=1
gpgcheck=0
~
]# yum repolist
]# yum -y install ansible
]# ssh-keygen -t rsa  -b 2048 -N '' -f key
]# for i in web1 web2 db1 db2 cache ; do ssh-copy-id -i key.pub ${i};done
]# vim /etc/hosts
]# 192.168.1.40 ansible
192.168.1.41 web1
192.168.1.42 web2
192.168.1.43 db1
192.168.1.44 db2
192.168.1.45 cache
]# for i in web1 web2 db1 db2 cache ; do rsync -av /etc/hosts root@${i}:/etc/hosts ;done
]# vim /etc/ansible/hosts
[web]
web1
web2

[db]
db1
db2

[other]
cache

[app:children]
web
db
[all:vars]
ansible_ssh_private_key_file="/root/key"
 ]#vim ansible.cfg
[defaults]
inventory=myhost
host_key_checking=false
]# ansible app1 -m ping
]# cd
]# ansible web -m shell -a 'echo ${HOSTNAME}'
]# ansible cache -m shell -a 'touch testfile'
]# ansible web1,db2 -a "useradd nb"
]# ansible web1,db2 -a 'echo 123 |passwd --stdin nb'
]# ansible web1,db2 -a 'id nb'
]# vim 1.sh
#!/bin/bash
id nb
if [ $?  != 0 ];then
useradd wk
echo 456 |passwd --stdin wk
fi
]# ansible all -m script -a "/root/1.sh"
]# vim /etc/resolv.conf
]# ansible all -m copy -a 'src=/etc/resolv.conf dest=/etc/resolv.conf'
]# ansible all -a 'cat /etc/resolv.conf'
]# ansible db -m yum -a 'state=installed name=mariadb-server'
]# ansible db -m service -a 'state=started name=mariadb enabled=yes'
]# ansible-doc script
]# ansible db -m script -a '/root/1.sh'

================================================== ============================== 1。
共通コマンドモジュール

  1. ansible all -m ping
  2. ansible all-mコマンド-a ''
  3. ansible all -m shell -a ''
  4. ansible all -m lineinfile -a ''
  5. ansible all -m replace -a ''
  6. ansible all -m copy -a'scr:dest: '
  7. ansible all -m yum -a'state = name '
  8. ansible all -m script -a '/ root / 1.sh'
  9. ansible all -m setup -a ''
  10. 10ansible all -m service -a ''

おすすめ

転載: blog.csdn.net/weixin_45942735/article/details/104288414