ansible 自动化运维工具的基础使用

ansible 自动化运维工具的基础使用

底层走ssh协议 ,默认端口22 可以通过 /etc/ssh/ssh.conf 修改配置文件

ansible下载后配置

修改ansible配置文件,vim /etc/
要开放以下两个

forks = 5
host_key_checking = False #禁用主机密钥检查
#实际工作中一般ssh-keyscan -H <受管主机IP> >> ~/.ssh/known_hosts 将受管主机公钥添加到~/.ssh/known_hosts文件,而非禁用

修改hosts文件,可以在任意路径新建一个,文件参数解释
ansible_ssh_host 受管主机名
ansible_ssh_port 端口 默认22
ansible_ssh_pass 受管理主机密码
ansible_ssh_user 受管主机用户名

hosts文件添加

[app1]
ip
[app2]
ip
....


#all是代表所有主机都是这样的用户名密码端口,如有不一样的应该另写如[app2:vars],输入正确的用户带端口和密码
[all:vars]
ansible_ssh_port=22 #可以不写,不写默认22
ansible_ssh_pass=password
ansible_ssh_user=root #可以不写,默认root

配置好之后运行
ansible all -m ping -i ./hosts

ansible参数

all代表执行所有的,可以指定如app1
-i 指定地址
-m 使用模块
-a 指定使用模块参数
-v 查看运行详细信息

ansible 模块使用

1.shell和command

ansible -i hosts app1 -m shell  -a 'ls /'
#单引号后跟bash命令,注意路径只支持绝对路径,该命令为列出app1的路径/下的文件
#app1 要在模块前面

ansible -i hosts app1 -m command  -a 'ls /'
#效果和shell一样

2.copy和fetch

#copy是把本地的该文件上传到目标主机位置,本地-->远程
ansible -i hosts app1 -m fetch -a 'src=/root/anaconda-ks.cfg dest=/root/'
#fetch是把目标主机的文件复制到本地的位置,远程-->本地
#src即source(源),dest即destination(目标)

3.file

ansible -i hosts app1 -m file -a 'path=/root/my state=directory'
#创建目录(类型dir)my 路径/root/下

ansible -i hosts app1 -m file -a 'path=/root/my1 state=touch'
#创建文件(类型touch)my1 路径/root/下

ansible -i hosts app1 -m file -a 'path=/root/my1 state=absent'
#删除文件my1 路径/root/下,absent直译缺席,这里意为删除

ansible -i hosts app1 -m file -a 'src=/root/my1 path=/root/my1 state=link'
#创建软链接

ansible -i hosts app1 -m file -a 'src=/root/my1 path=/root/my1 state=hard'
#创建硬连接

posted @ 2025-04-21 15:35  95158  阅读(16)  评论(0)    收藏  举报