简单ansible操作
Ansible
用于配置管理、应用程序部署、任务自动化
ansible主机清单
定义组
[webservers] # 定义组 |
o打
Ping 模块
ansible all -m ping
通过 Ping 模块测试所有主机是否可达。
Shell 模块
ansible all -m shell -a 'uptime'
在所有主机上执行
uptime
命令。Command 模块
ansible all -m command -a 'ls /tmp'
使用
command
模块列出/tmp
目录下的文件。Copy 模块
ansible all -m copy -a 'src=/path/to/source dest=/path/to/destination'
将本地文件复制到远程主机。
File 模块
ansible all -m file -a 'path=/tmp/testfile state=touch'
在远程主机上创建一个空文件。
Service 模块
ansible all -m service -a 'name=httpd state=started'
启动所有主机上的 httpd 服务。
User 模块
ansible all -m user -a 'name=johndoe state=present'
创建一个名为
johndoe
的用户。
常用选项
-i <inventory>
:指定主机清单文件。例如-i hosts
。--list-hosts
:列出将运行任务的主机。-l <subset>
:指定要执行任务的主机子集。例如-l webservers
。-u <user>
:指定远程主机用户。例如-u root
。-k
:提示输入 SSH 密码。--ask-become-pass
:提示输入 sudo 密码。-e <extra_vars>
:传递额外变量。例如-e "var1=value1 var2=value2"
。
示例详解
列出主机
ansible all --list-hosts
列出所有在清单中的主机。
指定用户和密码执行命令
ansible all -m shell -a 'df -h' -u root -k
使用 root 用户执行
df -h
命令,并提示输入密码。传递额外变量
ansible all -m shell -a 'echo {{ var_name }}' -e 'var_name=HelloWorld'
传递变量
var_name
,并在命令中使用。
高级用法
使用标签
ansible all -m shell -a 'systemctl restart httpd' --tags "restart"
使用标签来组织和执行特定的任务。
检查主机连通性
ansible all -m ping -i inventory/hosts
使用指定的主机清单文件检查连通性。
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Kalyan的小书房!
評論