一般的な解釈モジュールのAnsible自動インストールおよび運用・保守

(A)はじめに:

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

Ansibleは、2012年以来、以下のように特徴づけられる世界的流行、ですぐに公開しました:

  • その2番目の開発のためのAnsible Pythonベースの開発、運用・保守エンジニアは比較的簡単です。
  • Ansibleは、組み込みモジュールの富は、ほとんどすべての要件を満たしています。
  • 管理コマンドは、ホストの数千人に影響を与えることができ、非常に簡単です。
  • いいえクライアントモードない、SSH底を介した通信。

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

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

(II)Ansibleのインストールと設定

次のように書き留め、簡単な設定とインストールAnsible、環境によって環境は次のとおりです。
一般的な解釈モジュールのAnsible自動インストールおよび運用・保守

最終結果:サーバ1とサーバ2 Ansibleサーバによって制御されてもよいです。

まず、展開前の作業:

1、インストールローカルのyumリポジトリを使用することは、私の申し出をダウンロードし、ローカルのyumリポジトリ、抽出コード:buqy、私はAnsible 2.3.1.0バージョンを提供します。
インターネットにアクセスできるマシンならば2、あなたはAnsible 2.4.xxバージョンをインストールすることができ、倉庫yumを直接インターネットに指すことができます。
図3は、22は変更されるクライアント、自分でファイアウォールを設定する必要性と通信し、デフォルトのTCPを使用して、私が直接、ファイアウォールをオフ、便宜のためにここにいます。

第二に、インストールAnsible(いずれかを選択します):

1、インターネットのyumリポジトリインストールの使用:

[root@ansible ~]# yum clean all         #清除yum缓存
[root@ansible ~]# yum -y install ansible             #安装Ansible
[root@ansible ~]# ansible --version                  #可以查看到此信息,说明安装成功
ansible 2.4.2.0
  config file = /etc/ansible/ansible.cfg
         .............................

2、ローカルのyumリポジトリのインストールを使用することは、私は提供します:

[root@ansible yum.repos.d]# mount /dev/cdrom /media         #挂载我提供的ISO文件
mount: /dev/sr0 写保护,将以只读方式挂载
[root@ansible yum.repos.d]# cat /etc/yum.repos.d/a.repo       
#删除或移动原有yum配置文件,并编写本地yum文件:
[fd]
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.2
[email protected]'s password:              #输入主机1.2的root用户密码
[root@ansible ~]# ssh-copy-id [email protected]            #复制公钥到主机192.168.1.3
[email protected]'s password:                 #输入主机1.3的root用户密码
#在实际生产环境中,不会使用root身份,更改一下复制公钥时指定的用户即可。
[root@ansible ~]# ssh 192.168.1.2           #测试是否可以免密码登录
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.3                #测试是否可以免密码登录
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在庫管理ホスト・コンフィギュレーション・ファイル情報は、ホストファイルシステム機能に対応する、デフォルトであれば、グループ化Ansibleホストインベントリによって定義され、装置をグループ化することによって組織の/ etc / ansible /ホスト、ホストファイルに格納されていますデフォルトの/ etc / ansible /ホストを使用新しい在庫ansible -i直接私がここに持っているデフォルトのパスを使用して、在庫のパスを指定します。

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

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

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

構成された、リモートホスト操作のグループに対して定義することができるならば、動作は次のように指定された特定のホストグループのための1つ以上であってもよいです。

[root@ansible ~]# ansible web -m command -a "systemctl status httpd" --limit "192.168.1.2"
#查看web组中的192.168.1.2主机httpd服务的状态
192.168.1.2 | FAILED | rc=3 >>
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)non-zero return code
#也可以这样:
[root@ansible ~]# ansible 192.168.1.2 -m command -a "systemctl status httpd"
192.168.1.2 | FAILED | rc=3 >>
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor 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.2 | FAILED | rc=3 >>
     .................
192.168.1.3 | 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.3 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
192.168.1.2 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
<!--其中192.168.1.3和1.2是执行主机,SUCCESS表示命令执行成功,“=> {”表示返回的
结果。“changed”:false表示没有对主机做出更改,“ping”:“pong”表示执行了ping命令的
返回结果。命令中“all”关键字在前面提到过,代表了/etc/ansible/hosts文件中的所有主机,
不需要在hosts文件中定义,系统中默认存在的-->

使用例2:

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

使用例3:

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

192.168.1.3 | 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                  #列出支持的模块
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.2
192.168.1.3
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.2 | SUCCESS | rc=0 >>

192.168.1.3 | SUCCESS | rc=0 >>

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

192.168.1.2 | 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.2 -m hostname -a "name=web1"
#将主机1.2的主机名改为web1
192.168.1.2 | SUCCESS => {
    ansible_facts: {
        ansible_domain: , 
        ansible_fqdn: web1, 
        ansible_hostname web1 
        ansible_nodename: web1
    }, 
    changed: true
    name: web1
}
[root@server1 ~]# hostname       #在192.168.1.2主机上查看
web1
[root@server1 ~]# cat /etc/hostname                  #在192.168.1.2主机上查看
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@ansible ~]# 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@ansible ~]# 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、デフォルトは*です
    WEEKDAY: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.2 | SUCCESS | rc=0 >>
#Ansible: test
*/2 * * * * echo test >> /tmp/warrent.txt

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

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

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

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

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

私は最近、別のブログの記事に更新する2日間脚本上の設定ファイルを使用して、紙の混乱を避けるために、それのように多くの例を記述するためのモジュール。

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

おすすめ

転載: blog.51cto.com/14154700/2422724