オリジナル:http://106.13.73.98/__/149/
@(Ansible関連するコマンド)
コマンド
コマンドを実行し、ターゲットホストを指定します。
[root@old ~]# ansible db -a 'pwd'
9.0.0.4 | SUCCESS | rc=0 >>
/root
# 命令中的 db 是一个分组
chdir
一般的に、コンパイル時に使用するコマンド指定されたディレクトリを、実行に切り替えた後:
[root@old ~]# ansible db -a 'chdir=/tmp pwd'
9.0.0.4 | SUCCESS | rc=0 >>
/tmp
creates
指定されたファイルが存在する場合、それは実行されません。次の操作を:
[root@old ~]# ansible db -a 'creates=/tmp pwd'
9.0.0.4 | SUCCESS | rc=0 >>
skipped, since /tmp exists
# 如要注意的是,如果是像下面这样,则会执行后面的操作
t@old ~]# ansible db -a 'creates=/data mkdir /data'
[WARNING]: Consider using file module with state=directory rather than running mkdir
9.0.0.4 | SUCCESS | rc=0 >>
removes
指定されたファイルが存在する場合は、実行、次の操作を:
[root@old ~]# ansible db -a 'removes=/tmp pwd'
9.0.0.4 | SUCCESS | rc=0 >>
/root
コマンドがサポートされていない<>
|
;
&
$
使用、コマンドにこれらの文字を使用する必要がある場合、これらの特殊文字をシェル下記参照、コマンドを。
シェル
例1、USER01ユーザーのパスワード:
[root@old ~]# ansible db -m shell -a 'echo "123456" | passwd --stdin user01'
9.0.0.4 | SUCCESS | rc=0 >>
Changing password for user user01.
passwd: all authentication tokens updated successfully.
例2、Pythonスクリプトを実行します。
[root@old ~]# ansible db -m shell -a '/root/test.py'
9.0.0.4 | SUCCESS | rc=0 >>
Hello, world!
# 前提是该脚本必须有可执行权限
スクリプト
制御部行う制御ユニットファイル:
[root@old ~]# ansible db -m script -a '/root/test.sh'
9.0.0.4 | SUCCESS => {
"changed": true,
"rc": 0,
"stderr": "Shared connection to 9.0.0.4 closed.\r\n",
"stdout": "",
"stdout_lines": []
}
コピー
リモートホストへファイルをコピーします。
ansible db -m copy -a 'dest=/root/test01.sh src=/root/test.sh'
# src:指定本机中的文件
# dest:指定远程主机中要生成的文件
リモートホストとリモートバックアップファイルにファイルをコピーします。
ansible db -m copy -a 'dest=/root/test01.sh src=/root/test.sh backup=yes'
# backup=yes:备份
コピー後のファイルの所有権とアクセス権を変更します。
ansible db -m copy -a 'dest=/root/test01.sh src=/root/test.sh owner=user01 mode=700'
# owner:指定属主
# mode:指定权限
リモートホストにディレクトリをコピーします。
ansible db -m copy -a 'src=/etc/init.d dest=/tmp'
# src:指定本机的目录
# dest:指定远程主机的目录
# 在src末尾加上'/'后,将复制目录中的文件到远程主机:src=/etc/init.d/
リモートホストにディレクトリ内のファイルをコピーし、所有権と権限を変更します。
ansible db -m copy -a 'src=/etc/init.d dest=/tmp owner=user01 mode=755'
# owner:指定属主
# mode:指定权限
コンテンツは、リモート・ホスト・ファイルに指定したコンテンツを追加します:
ansible db -m copy -a 'content="Hello, World!" dest=/tmp/test.txt'
# content:指定内容
# dest:指定远程主机的文件
ファイル
リモートホスト上のディレクトリを作成します。
ansible db -m file -a 'path=/tmp/test state=directory'
# path:指定要创建的目录
# state=directory:声明这是要创建目录
リモートホスト上のファイルを作成します。
ansible db -m file -a 'path=/tmp/test.txt state=touch'
# path:指定要创建的文件
# state=touch:声明这是要创建文件
リモートホスト上のファイルやディレクトリを削除します。
ansible db -m file -a 'path=/tmp/test state=absent'
# path:指定要删除的文件/目录
# state=absent:声明这是要删除文件/目录
ソフトリンクを作成します。
ansible db -m file -a 'path=/root/init.d src=/etc/init.d state=link'
# path:指定目标文件
# src:指定源文件
# state=link:声明这是要创建软链接,你也可以指定为hard来创建硬链接
フェッチ
機械制御ファイル/ディレクトリを引っ張るために使用されます。
ansible db -m fetch -a 'dest=/tmp src=/var/log/cron'
# dest:指定存储的目录
# src:指定拉取的文件/目录
# 注意:成功拉取后,会在本地保留被管控机的目录结构
yumを
ヤムパッケージをインストールします。
# 在被管控机上安装lynx
ansible db -m yum -a 'name=lynx'
ピップ
Pythonのピップダウンロードツール
# 在被管控机上安装Flask框架
ansible -m pip -a 'name=flask'
サービス
コントロールのためのサービス:
# 启动firewalld服务
ansible db -m service -a 'name=firewalld state=started'
# 停止firewalld服务
ansible db -m service -a 'name=firewalld state=stopped'
cronの
次のパラメータのタイミング管理タスク:
- 分:分
- 時間:とき
- 日:日
- 月:月
- WEEKDAY:週
新しい定期的なタスク:
# 每隔10分钟执行一次job指定的动作
ansible all -m cron -a 'minute=10 job="touch /tmp/test.txt"'
# job:用于指定动作
名前の新しい定期的なタスク:
# 每隔20分钟执行一次job指定的动作
ansible db -m cron -a 'minute=20 job="touch /tmp/text.txt" name=touchfile'
# name:指定定时任务的名称
定期的なタスクをコメントアウトします。
ansible db -m cron -a 'minute=20 job="touch /tmp/text.txt" name=touchfile diabled=yes'
# diabled=yes:注释
スケジュールされたタスクを削除するには:
ansible db -m cron -a 'minute=50 job="touch /tmp/test.txt" name="touchfile" state=absent'
# state=absent:删除
# 注意:删除操作博需指定name才能成功删除,即使是name为None,也必须指定
グループ
グループを作成します。
ansible db -m group -a 'name=group01'
グループを削除します。
ansible db -m group -a 'name=group01 state=absent'
# state=absent:删除
ユーザー
ユーザーを作成します。
ansible db -m user -a 'name=user01 home=/opt/user01 groups=root uid=2000'
# home:指定宿主目录
# groups:指定附加组
# uid:指定用户ID
ユーザーを削除します。
ansible db -m user -a 'name=user01 state=absent remove=yes'
# state=absent:删除
# remove=yes:删除用户家目录