前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ansible批量操作服务器主机入门

Ansible批量操作服务器主机入门

作者头像
入门笔记
发布2022-06-02 16:05:00
1.4K0
发布2022-06-02 16:05:00
举报
文章被收录于专栏:入门小站

Ansible

Ansible 自动化平台可提供一个企业框架,用于大规模构建和运维 IT 自动化。通过可视化控制面板、基于角色的访问控制、分析等自动化工具和经认证可重复使用的内容,用户可以集中管理和控制自己的基础架构。讲人话就是批量在其它多台主机上执行命令,安装软件.

img

安装Ansible

代码语言:javascript
复制
> sudo dnf install ansible //Fedora
> sudo yum install ansible //RHEL

//CentOS
> sudo yum install epel-release
> sudo yum install ansible

注意这里安装的是Ansible 2.3

关闭密钥检查

避免 Ansible 用于连接到主机的底层工具检查主机密钥,请将其设置为False

代码语言:javascript
复制
> vim /etc/ansible/ansible.cfg
[defaults]
host_key_checking = False

Hello World

1.添加主机

/etc/ansible/hosts文件添加下面的内容

代码语言:javascript
复制
> vim /etc/ansible/hosts
rumenzServer1 ansible_host=192.168.0.110 ansible_port=22 ansible_user=rumenz ansible_ssh_pass=123456
rumenzServer2 ansible_host=192.168.0.111 ansible_port=22 ansible_user=rumenz ansible_ssh_pass=123456

[hello]
rumenzServer1
rumenzServer2

[rumenz]
rumenzServer1

[rumenz123]
rumenzServer2
  • ansible_host 要连接的主机的名称,如果与您希望为其提供的别名不同。
  • ansible_port ssh 端口号,如果不是 22
  • ansible_user 要使用的默认 ssh 用户名。
  • ansible_ssh_pass 要使用的 ssh 密码
  • rumenzServer1,rumenzServer2服务器名
  • [hello],[rumenz],[rumenz123]组名

2.批量ping

  • hello就是上面配置文件配置的组名,代表要批量操作这个组的主机(rumenzServer1rumenzServer2)
代码语言:javascript
复制
> ansible hello -m ping
[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details
192.168.0.110 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.0.111 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
3.批量执行Shell
  • rumenzServer1,rumenzServer1
  • -m模块的意思
  • command 执行简单的远程 shell 命令,但不支持解析特殊符号< > | ; &
  • -a后面跟上需要执行shell命令
代码语言:javascript
复制
> ansible hello -m command -a "hostname"
192.168.0.110 | CHANGED | rc=0 >>
rumenz.com.1
192.168.0.111 | CHANGED | rc=0 >>
rumenz.com.2
批量打印服务器时间
  • rumenzServer1,rumenzServer1
代码语言:javascript
复制
> ansible hello -m command -a "date"
192.168.0.110 | CHANGED | rc=0 >>
Tue Oct 19 17:15:51 CST 2021
192.168.0.111 | CHANGED | rc=0 >>
Tue Oct 19 17:15:50 CST 2021
4.批量创建目录
  • rumenzServer1,rumenzServer1
  • shell模块,支持解析特殊 shell 符号,但这样有潜在的 shell 注入风险
代码语言:javascript
复制
> ansible hello -m shell -a "mkdir /tmp/hello && cd /tmp/hello && pwd "
192.168.0.110 | CHANGED | rc=0 >>
/tmp/hello
192.168.0.111 | CHANGED | rc=0 >>
/tmp/hello
5.分组过多可以使用all

指定all会操作所有配置的主机

代码语言:javascript
复制
> ansible all  -m command -a "date"

192.168.0.110 | CHANGED | rc=0 >>
Tue Oct 19 17:15:51 CST 2021
192.168.0.111 | CHANGED | rc=0 >>
Tue Oct 19 17:15:50 CST 2021

相关文章

linux如何设置无密码SSH登录

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Ansible
  • 安装Ansible
  • 关闭密钥检查
  • Hello World
    • 1.添加主机
    • 2.批量ping
      • 3.批量执行Shell
        • 批量打印服务器时间
          • 4.批量创建目录
            • 5.分组过多可以使用all
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档