詳細Ansible自動化された運用・保守

Ansibleより多くの火災操作とオープンソースの自動化ツール、Ansible操作と自動化のメンテナンスのメンテナンスとして、今年は、効率を改善を通じて人的エラーを減らすために、運用・保守エンジニアを達成することができます。Ansibleは、それ自体で管理タスクのさまざまなを達成することができ非常に豊かな一体型モジュール、千以上に付属しているモジュールです。さらに重要なのは、それは簡単ですが、ほとんど何もすることができ、フィールドでの機能と非常に豊富、運用、保守を提供しています。

次のように特徴づけられる世界的流行にすぐに発表され2012年以来のAnsible:

1、その2番目の開発のためのAnsible Pythonベースの開発、運用・保守エンジニアが比較的容易である
2、Ansible組み込みモジュールの富、ほぼすべての要件を満たし
3を、管理コマンドは、ホストの何千も影響を与えることができ、非常に単純ではありません
何の顧客、4エンドパターン、SSHを介した基本的な通信

我々は相互作用しAnsibleできる4つの方法は、私はここで十分に日常業務に対応するための唯一の二つの方法を検討しました。それらは次の通りです:

1、アドホックコマンド:ユーザーが直接アドホックコマンドでタスクを完了するためにAnsibleツールを呼び出して設定します。
2、プレイブック:ユーザー作成済みの良いansibleプレイブック、タスクのプレイブックプリ振り付けセット、タスク・オーダー実行を行うこともできます。

図1に示すように、Ansibleはワーキングセット:

Ansibleワーキングセットは、デバイスのリストは、グループ内のすべてのホストに直接影響基を呼び出し、グループ化することによって達成することができる管理するために使用される、インベントリ(在庫)インベントリ、モジュール、プラグインおよびAPIを含み、モジュールはあります様々な実行モジュールは、ほとんどすべての管理タスクは、モジュールによって実行されます。プラグインは、追加のさまざまな機能を提供し、APIは、プログラマのためのインタフェースを提供し、あなたはAnsibleの二次開発に基づいてこれを行うことができます。

Ansibleはについて書くために制御され、下から、複数のコンピュータ、インストールと設定に単一のコマンドや設定ファイルで変更することができます。

2、脚本の設定ファイル

脚本プロファイルはように簡潔、明瞭な構造とし、YAML構文を使用しています。シェルスクリプトに似た脚本プロファイルは、特定のニーズのためのタスクリストを保存するためのYAML形式のファイルです。Ansibleコマンドを使用すると、さまざまなタスクを完了することができますが、前述したが、複雑なタスクの数を設定するとき、それは非常に非効率的である一つ一つを入力してください。より効果的なプログラムを使用すると、運用・保守を自動化することができ、ファイルを実行するためにansible-脚本コマンドによって脚本構成ファイルでタスクコードのすべてを置いています。YAMLファイルの拡張子は、通常.yamlまたは.ymlされます。

Ansibleのインストールおよび構成

環境以下の通りである:
詳細Ansible自動化された運用・保守
まず、準備作業:
1、ローカルYUMリポジトリ:https://pan.baidu.com/s/1-ERCVm6QaUA4XQd_X5Kwow抽出コード:exnpバージョン:Ansible 2.3.1.0
2、場合にマシンのネットワークは、インターネットは、yumの倉庫向けることができ
、変更されることが、クライアントと通信するためのデフォルトのTCP 22を使用して、3を自身が解放される必要があり、ファイアウォール提供
の2つのインストールAnsibleを:

[root@ansible /]# mount /dev/sr0 /media/                   # 挂载yum仓库
[root@ansible /]# rm -rf /etc/yum.repos.d/*               # 删除或移走yum目录中的其他配置文件
[root@ansible /]# vim /etc/yum.repos.d/a.repo 
[aaa]
baseurl=file:///media
gpgcheck=0
[root@ansible yum.repos.d]# yum clean all          #清除yum缓存
[[email protected]]# yum -y install ansible             #安装Ansible
[root@ansible yum.repos.d]# ansible --version              #可以查看到此信息,说明安装成功
ansible 2.3.1.0
  config file = /etc/ansible/ansible.cfg
           ...................

私はここで2.4.2.0をansibleのyumリポジトリをインストールするには、インターネットを使用しています。

インストールが完了しているが、通常の使用Ansibleに、またそれぞれが最後にパスワードを入力する必要があり、コマンドやスクリプトを実行するには、コントロールで複数のホスト問題に対処する必要があり、そして、それはそう、非常に無味です次のようにSSHはまた、無料の対話型ログオンを作成する必要があります

以下の操作がAnsibleサーバで行われています。

[root@ansible ~]# ssh-keygen -t rsa             #在Ansible服务器生成密钥对,执行后默认一直按回车即可
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):         #默认按回车
Enter passphrase (empty for no passphrase):             #默认按回车
Enter same passphrase again:                        #默认按回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:                                           #默认按回车
SHA256:zhd2++KvByxFPE4ZKmDdmTHp6cjsuIEz5M26QrkBfes root@ansible
The key's randomart image is:                     #默认按回车
+---[RSA 2048]----+
|      o. .o*.o   |
|     . .. =o*    |
| .      ...= .   |
|. . .    .o o    |
| . o.. oSooo.    |
|  +o.+ o+.ooo.   |
| . += +oo ....   |
|  o E+....  ...  |
|   .o...   .o=o  |
+----[SHA256]-----+
#至此密钥对已经生成了,隐藏存在当前用户的宿主目录下。
[root@ansible ~]# ls -a | grep ssh        #查看
.ssh
[root@ansible ~]# cd .ssh
[root@ansible .ssh]# ls       #查看.ssh目录下的文件,有公钥和私钥
id_rsa  id_rsa.pub  known_hosts
[root@ansible ~]# ssh-copy-id [email protected]            #复制公钥到主机192.168.1.20
[email protected]'s password:              #输入主机1.20的root用户密码
[root@ansible ~]# ssh-copy-id [email protected]            #复制公钥到主机192.168.1.30
[email protected]'s password:                 #输入主机1.30的root用户密码
#在实际生产环境中,不会使用root身份,更改一下复制公钥时指定的用户即可。
[root@ansible ~]# ssh 192.168.1.20           #测试是否可以免密码登录
Last login: Tue Jul 23 08:11:39 2019 from 192.168.1.88
[root@server1 ~]# exit              #退出192.168.1.2的shell环境
[root@ansible ~]# ssh 192.168.1.30                #测试是否可以免密码登录
Last login: Tue Jul 23 08:43:16 2019 from 192.168.1.88
[root@server 2 ~]# exit           #退出192.168.1.3的shell环境

三、Ansible構成:
在庫管理ホストは、ホストファイルシステム機能に対応する、Ansibleプロファイル情報では、デフォルトは、ホストが装置をグループ化することによって編成、ファイル/ etc / ansible /ホストに格納され、在庫Ansibleは、ホストによって定義されますそしてデフォルトの/ etc / ansible /ホストを使用していない場合は、グループ化、することができansible -i 新的inventory路径、直接私がここに持っているデフォルトのパスを使用するために在庫を指定します。

1、パケット内の管理のホストを追加する必要があります

それは管理されている前Ansibleは、ホストは、機器の管理を実現するためにデバイスのリストをパケットにファイルを追加するので、私たちはまず、hostsファイルを記述する必要があります。ホストが[]のグループ名を含む、ファイルのターゲットホストがデフォルト以外のSSHポートを使用している場合は、ドメイン名とIPアドレスによってサポートされているデバイスのリストは、デフォルトでは、デバイスを管理するために、ポート22(SSH)にアクセスすることで、あなたもホストすることができます別個のユニットを行うために、結腸と示されたポート番号の名称を使用した後、またワイルドカードをサポートします。

[root@ansible ~]# vim /etc/ansible/hosts            #编辑清单文件,在文件末尾写入以下内容
                .....................             #省略部分内容   
[web]              #定义一个名为web的分组,下面是web组中的主机
192.168.1.20
192.168.1.30
[test01]            #定义一个名为test01的分组,下面是test01组中的主机
www.test.com:222         #若目标主机使用了非默认的SSH端口,可以在域名后面加端口号来指定
www[2:5].test.com       #[2:5]表示2~5之间的所有数字,如www2.test.com、www3.test.com .......的所有主机
192.168.1.4:66               #IP地址后面也可以指定非默认的端口号
#将需要管理的主机写入后,保存退出即可。注意,该文件中包含一个隐含的分组“all”,表示所有主机。


構成した後、リモート・ホスト操作のグループに定義されてもよく、動作は次のように指定された特定のホストグループのための1つ以上であってもよいです。

[root@ansible ~]# ansible web -m command -a "systemctl status httpd" --limit "192.168.1.20"
#查看web组中的192.168.1.20主机httpd服务的状态
192.168.1.20 | FAILED | rc=3 >>
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd. preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)non-zero return code
#也可以这样:
[root@ansible ~]# ansible 192.168.1.20 -m command -a "systemctl status httpd"
192.168.1.20 | FAILED | rc=3 >>
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd. preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)non-zero return code
[root@ansible ~]# ansible 192.168.1.* -m command -a "systemctl status httpd"
#查询192.168.1.0这个网段所有主机的httpd服务状态
192.168.1.20 | FAILED | rc=3 >>
     .................
192.168.1.30 | FAILED | rc=3 >>
     .................

四、Ansibleコマンド:

[root@ansible ~]#ansible   #输入ansible后,连续按两下tab键,可以查看ansible所有相关命令
ansible               ansible-doc           ansible-playbook-2
ansible-2             ansible-doc-2         ansible-playbook-2.7
ansible-2.7           ansible-doc-2.7       ansible-pull
                ..........................

コマンド1、ansible:

Ansible本番環境では、主に以下のシナリオで使用されるコマンドの非常に頻繁に使用する、のいずれかです

  • 一時的なメンテナンス、また、非硬化性の需要として知られている法律、タスクを実行するための一時的な必要性は、ありません。
  • 一時的な1回限りの操作。
  • 二次開発のインターフェイスを呼び出します。

    ansible次のオプションが用意されています。

    • -v:詳細な実施手順情報の出力は、全ての情報の実行を求めることができます。
    • -i PATH:デフォルトでは、/ etc / ansible /ホストで、インベントリ情報を指定します。
    • -f:同時スレッドの数は、デフォルトでは5つのスレッドです。
    • = PRIVATE_KEY_FILE --private-キー:キーファイルを指定します。
    • -m:実行モジュールを指定します。
    • -M:指定されたブロック・ストレージ・パス、デフォルトの/ usr /共有/ ansibleで、デフォルトのパスANSIBLE_LIBRARYによって設定することができます。
    • -a:モジュールパラメータを指定します。
    • -u:ユーザーがコマンドを実行されているリモートホストを指定します。
    • -l:制限は「--limit」と同等のホストを、実行します。
    • --list-ホスト:適格なホストのリストに記載されているが、任意のコマンドを実行しません。

使用例1(ウェブ定義事前に/ etc / ansible / hostsファイルグループ内):

[root@ansible ~]# ansible all -f 5 -m ping          <!--检查所有主机是否存活-->
192.168.1.30 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
192.168.1.20 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
<!--其中192.168.1.30和1.20是执行主机,SUCCESS表示命令执行成功,“=> {”表示返回的
结果。“changed”:false表示没有对主机做出更改,“ping”:“pong”表示执行了ping命令的
返回结果。命令中“all”关键字在前面提到过,代表了/etc/ansible/hosts文件中的所有主机,
不需要在hosts文件中定义,系统中默认存在的-->

使用例2:

[root@ansible ~]# ansible web --list                        #列出web组所有的主机列表
  hosts (2): 
    192.168.1.20
    192.168.1.30
#以上表示web中包含两个主机,分别是1.20和1.30

使用例3:

[root@ansible ~]# ansible web -m command -a "df -hT"        #显示web组中主机的磁盘使用情况
192.168.1.20 | SUCCESS | rc=0 >>
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  5.8G   45G   12% /
devtmpfs                devtmpfs  895M     0  895M    0% /dev
                          ............................            #省略部分

192.168.1.30 | SUCCESS | rc=0 >>
文件系统            类型      容量  已用  可用 已用% 挂载点
/dev/mapper/cl-root xfs        17G  5.5G   12G   33% /
devtmpfs            devtmpfs  897M     0  897M    0% /dev
tmpfs               tmpfs     912M   84K  912M    1% /dev/shm
                          ............................            #省略部分

ansible結果は、結果を示すために、通常は3色で、非常にフレンドリー返さ:赤、緑、オレンジ、黄色(色が調和しています)。赤は異常があるの実行を意味し、オレンジ色の黄色は、コマンドの実行ステータス変更の目的を表し、緑は正常な実行を指示し、ターゲットホストに変更を加えていませんでした。
コマンド2、ansible-docの:

命令ansible文書を照会するためのansible-docのモジュールは、各モジュールのmanコマンドと同様に詳細な手順およびアプリケーションケースの導入を有します。

[root@ansible ~]# ansible-doc -l | wc -l                  #列出支持的模块
1378               #支持的模块有1378个
[root@ansible ~]# ansible-doc ping             #查询ping模块的说明信息
> PING    (/usr/lib/python2.7/site-packages/ansible/modules/system/ping.py)

        A trivial test module, this module always returns `pong' on
        successful contact. It does not make sense in playbooks, but
        it is useful from /usr/bin/ansible' to verify the ability to
                             ................#省略部分内容

コマンド3、ansible-脚本:

Ansible-毎日アプリケーションの脚本は、一連のタスクを実行するために使用されるLinuxのソースまたはSHコマンドに類似した最高のコマンドの使用方法、です。その作業のメカニズムは以下のとおりです。事前に読み込むことで、集中文書処理作業のために良い脚本を執筆します。ファイル形式YML続いansible・脚本脚本コマンド、脚本ファイルストレージタスクが実行される、次のコマンドを使用します(事前に準備するplaybook.yml文書を、それは絶対パスplaybook.ymlを指定するのが最適です):

[root@ansible ~]# ansible-playbook playbook.yml

コマンド4、ansibleコンソール:

シェルで、WindowsとLinuxのCMDに似ansible・コンソールに私たちをansible対話型ツール、。同じことが、すべて同様のシェルで動作し、対話モードをシェルに慣れているユーザーのための優れた体験を提供ビルトインのシェルコマンドansible様々な、とタブ補完のような仮想端末のうち、ansible、コンソール上で使用することができます。次のように具体的な動作は以下のとおりです。

[root@ansible ~]# ansible-console          #连接交互式工具
Vault password:         #ansible 2.4.2.0会提示输入一个密码,随便输入后按回车即可,不允许空值
Welcome to the ansible console.
Type help or ? to list commands.

root@all (2)[f:5]$ cd web         #切换到web组
root@web (2)[f:5]$ list     #列出组中主机
192.168.1.20
192.168.1.30
root@web (2)[f:5]$ ifconfig ens33         #查询每个主机的网卡信息
root@web (2)[f:5]$ exit           #退出ansible-console环境

五、Ansibleは、モジュールの説明が付属しています:

1、コマンドモジュール:

コマンドモジュールは、リモート・ホストコマンドがパイプシェル特性、リダイレクション、および以下の共通のパラメータと同様、残りのシェルをサポートしていない実行します。

  • CHDIR:ディレクトリに進めるために、コマンドニーズを実行する前に、リモートホスト上。
  • 作成:ファイルがすでに存在する場合は実行されませんタスクを作成、実行するためにファイルを作成します。
  • 削除:ファイルが存在しない場合は、コマンドでファイルが実行された削除タスクが実行されません削除します。
  • executeble:実行するシェルコマンドを指定します。
[root@ansible ~]# ansible all -m command -a "chdir=/home ls ./"
#在所有主机上运行“ls ./”命令,运行前切换至/home目录下。

2、シェルモジュール(ユニバーサルモジュールと同等のは、あなたがほとんどのコマンドを実行することができます):

シェルモジュールは、リモート・ホスト上でコマンドを実行、同等のシェルプロセスは、リモートホストを呼び出し、その後、シェルでコマンドを実行するためのサブシェルを開きます。その差のコマンドモジュールは、そのようなパイプの休憩、およびリダイレクションなど、シェルの特性をサポートしていることです。

[root@ansible ~]# ansible web -m shell -a 'echo "hello world" >> /tmp/hello.txt'
#在web组的主机上编写一个txt文件
192.168.1.20 | SUCCESS | rc=0 >>

192.168.1.30 | SUCCESS | rc=0 >>

[root@ansible ~]# ansible web -m shell -a ' cat /tmp/hello.txt'        #查看编写的文件
192.168.1.30 | SUCCESS | rc=0 >>
hello world

192.168.1.20 | SUCCESS | rc=0 >>
hello world

3、モジュールをコピーします。

次のようにコピーし、リモートホストに指定されたホストファイルの位置をコピーするための手段と、共通のパラメータは以下のとおりです。

  • SRC:ソースは、そのファイルのパスを指摘し、あなたは、相対パスと絶対パスを使用することができます。直接サポートは、ソースがディレクトリである場合、ターゲットはディレクトリでなければなりません、ディレクトリを指定しました。
  • DEST:インストール先のディレクトリのファイルは絶対パスを使用して、コピーすることを、直接指定されたディレクトリをサポートしています。ソースがディレクトリである場合は、ターゲットは、ターゲットがすでに存在する場合、それは元のコンテンツをカバーする、ディレクトリでなければなりません。
  • モード:オプションのターゲット・ファイルのコピーが指摘し、許可、。
  • 所有者:コピーは、指摘し、オプションのメインターゲットファイルです。
  • グループ:コピー、指摘は、オプションのターゲット・ファイルのセットです。
  • コンテンツ:ターゲットホストにコピーされたコンテンツを指摘し、ターゲットファイルにコンテンツを指定されたデータをコピーするには、SRC、同等で使用することはできません。
[root@ansible ~]# ansible web -m copy -a "src=/etc/hosts dest=/tmp/ mode=777 owner=nobody group=root"
#将本机的/etc/hosts文件复制到web组中的主机,并指定权限为777,属主为nobody,属组为root。

4、ホスト名モジュール:

、次の共通パラメーターをホスト名ホスト名を管理するための手段:

名前:ホスト名の名前。

[root@ansible ~]# ansible 192.168.1.20 -m hostname -a "name=web1"
#将主机192.168.1.20的主机名改为web1
192.168.1.20 | SUCCESS => {
    ansible_facts: {
        ansible_domain: , 
        ansible_fqdn: web1, 
        ansible_hostname web1 
        ansible_nodename: web1
    }, 
    changed: true
    name: web1
}
[root@server1 ~]# hostname       #在192.168.1.20主机上查看
web1
[root@server1 ~]# cat /etc/hostname                  #在192.168.1.20主机上查看
web1
#更改主机名后需重启才可使新的主机名生效。

5、YUMモジュール:

リモートホスト管理パッケージは、以下の共通のパラメータに基づいてヤムヤムメカニズムモジュール:

  • 名前:パッケージの名前は、バージョン番号をもたらすことができます。バージョンを指定しない場合、デフォルトでは、最新バージョンをインストールします。
  • 状態=本|最新|存在しない:パッケージの操作が実行を示し、本発明は、インストーラパッケージは、最新のパッケージ、不在エクスプレスアンインストーラパッケージの最新バージョンを表すことを示しています。
  • disablerepo:YUMでインストールする場合、一時的に倉庫IDを無効にします。
  • enablerepo:YUMでインストールする場合、一時的なIDの倉庫が有効になっています。
  • conf_file:yumのランタイム構成ファイル、代わりにデフォルトの設定ファイルを使用します。
  • diable_gpg_check = YES | NO:整合性チェック機能が有効になりません。
[root@ansible ~]# ansible web -m yum -a "name=httpd state=present"       
                        <!--
在web组中的主机上安装httpd服务,需要注意的是,管理端只是发送yum指令到被
管理端,被管理端要存在可用的yum仓库才可以成功安装。
         -->

6、サービスモジュール:

サービスモジュールは、リモート・ホスト・モジュール上のサービスを管理するために使用され、次のように、一般的なパラメータは次のとおりです。

  • 名前:マネージドサービスの名前。
  • 状態=開始|停止|再起動|再ロード:アクションは、起動、シャットダウン、再起動を備えており、コンフィギュレーション・ファイルを再ロードします。
  • 有効= YES | NO:ないサービスがスタートからの起動を設定したかどうかを示します。
  • ランレベル:あなたは最初から有効になってブートを設定した場合、そのよう2/3/4/5として、自動的に実行されているそれらの中で定義された目標を開始する必要があります。
[root@ansible ~]# ansible web -m service -a "name=httpd state=started enabled=yes"
#启动httpd服务,并设置为开机自启动。

7、ユーザモジュール:

リモートホスト上のユーザーアカウント管理のためのユーザモジュール以下のように、一般的なパラメータは次のとおりです。

  • 名前:パラメータには、名前を考慮しなければなりません。
  • 状態=現在|欠席:アカウントを作成または削除、現在は存在しない急行が削除、作成を表しています。
  • システム= YES | NO:システムアカウントを行います。
  • UID:ユーザーUID。
  • グループ:基本的なユーザー・グループ。
  • グループ:ユーザーの追加セット。
  • シェル:使用されるデフォルトのシェル。
  • ホーム:ユーザのホームディレクトリ。
  • move_home = YES | NO:ありませんあなたはホームディレクトリを設定した場合は、すでに、既存のホームディレクトリの移動が存在します。
  • パスワード:ユーザーのパスワード。
  • コメント:Notesユーザー情報。
  • 削除しない= YES | NO:時の状態に=不在、あなたがユーザのホームディレクトリを削除するかどうか。
[root@ansible ~]# ansible web -m user -a 'name=user1 system=yes uid=501 group=root groups=sshd shell=/sbin/nologin home=/home/user1 password=user1 comment="test user"'
#创建一个名为user1的用户
[root@ansible ~]# ansible web -m user -a "name=user1 remove=yes state=absent"
#删除刚才创建的user1用户

図8に示すように、グループ・モジュール:

グループの管理グループ、グループ、以下の共通のパラメータを作成または削除するための手段:

  • GID指定されたグループ:GID
  • 名前:グループ名を指定します。
  • 状態=現在|不在:作成または削除
  • システム= YES | NO:システム・グループもしません
[root@ansible ~]#  ansible web -m group -a 'name=test gid=300 state=present system=yes'
#创建gid为300,组名为test的系统组。
[root@ansible ~]#  ansible web -m group -a 'name=test gid=300 state=absent system=yes'
#删除刚刚创建的组。

9、モジュールをマウントします。

ファイルシステムは、次の共通パラメーターをマウントするための手段をマウントします。

  • SRC:デバイスまたはファイルシステムをマウントするには
  • 名前:マウントポイントを指定します。
  • FSTypeに:ファイルシステムタイプを指定します。
  • OTS = W | R | O:リーダーのファイルの種類を設定し、組み合わせて使用​​することができます。
  • 状態=現在|欠席|マウント|アンマウント:のみ自動的にマウントポイントを作成しませんし、マウントしていないfstabの設定ファイルを変更表し現在、fstabファイルを、マウントポイントを削除、変更するには不在の手段は、マウント:自動的にマウントポイントを作成しますそして、、自動的に(fstabの)をマウントするために追加して、マウントし、アンマウント:ちょうどアンインストールし、マウントポイントを削除しないでください、fstabファイルを変更しません。
[root@an..~]# ansible web -m mount -a 'name=/warrent src=/dev/cdrom fstype=iso9660 state=mounted'
#挂载iso镜像到/warrent目录下,并设置开机自动挂载。
[root@ansible ~]#  ansible web -m mount -a 'name=/warrent state=absent'
#卸载ISO镜像,并删除挂载点,删除开机自动挂载。
[root@an..~]# ansible web -m mount -a "path=/mnt/data src=/dev/sdb1 fstype=xfs ots=wr state=mounted"
#注:mount已经使用path代替了原来的name参数,但是name参数还是可以使用的。

10、cronのモジュール:

スケジュールされたタスクを管理するために使用するcronモジュール次のように、一般的に使用されるパラメータは次のとおりです。

  • 名前:必須、スケジュールされたタスクの説明を指定します
  • 仕事:タスクが実行されます
  • ユーザー:ジョブを実行しているユーザー
  • 実行時間:
  • 分:0-59、デフォルトは*
  • 時間:0-23、デフォルトは*
  • 当日:1-31、デフォルトは*
  • 月:1〜12、デフォルトは*
  • 平日:1-7、デフォルトは*
  • 状態=現在|不在:存在する発現は、スケジュールされたタスクの追加、スケジュールされたタスクを削除するには、不在の手段。
[root@ansible ~]# ansible web -m cron -a 'name=test user=root minute=*/2 job="echo test >> /tmp/warrent.txt" state=present'
#添加一个计划任务测试一下
[root@ansible ~]# ansible web -m shell -a "crontab -l"                #查看创建的任务计划
192.168.1.20 | SUCCESS | rc=0 >>
#Ansible: test
*/2 * * * * echo test >> /tmp/warrent.txt

192.168.1.30 | SUCCESS | rc=0 >>
#Ansible: test
*/2 * * * * echo test >> /tmp/warrent.txt

11、スクリプトモジュール:

機能:SCP +シェルの組み合わせに相当し、リモートホスト上のマスタースクリプトを実行します。

次のように使用方法は以下のとおりです。

[root@ansible ~]#ansible web -m script -a "/home/test.sh"

:設定ファイルを使用して脚本については、以下を参照してくださいhttps://blog.51cto.com/14227204/2442514

おすすめ

転載: blog.51cto.com/14306186/2443016