通过批量启动ntp服务来讲讲ansible的安装配置

简介:

云上服务程序采取事务管理,强依赖时间同步,登陆每一台服务器进行安装启动,太麻烦了,肯定是需要批量操作的。
在批量管理工具中,有saltstack,ansible,puppet还有pssh,这里面ansible来说相对轻量且功能比较多,算是比较零门槛的自动化运维工具

  本文,就ansible的轻量部署安装,以及执行命令进行简单的介绍,此次暂不涉及ansible的playbook。

步骤主要包含:

    配置server端和服务器端免密登陆
    安装ansible,并进行配置
    通过ansible下发安装启动ntp的命令
    查看服务器ntp运行状态,以及各服务器之间时间是否有较大差异

说ansible轻量的原因就是因为ansible只需安装server端,不需要安装client,对应用服务器无额外操作,但server端还是需要和各服务器之间通信的,此时有两种方式:

  1. 密码明文操作,这个在后面介绍ansible具体配置的时候说
  2. 设置server端和服务器免密登陆,这种方式相对比较安全,下面优先说这种方式

配置服务器免密登陆

key方式登陆服务器
sh-keygen -t rsa

image

查看公钥位置
ll ~/.ssh/

image

将公钥推送给服务器
sshpass -p密码 ssh-copy-id  -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no ip  //此步骤可通过脚本方式批量执行完成
参数说明:-I 后面跟公钥 ,-o关闭host key交互
脚本参考:

image

-------------------------------------此处是ansible正式安装分割线------------------------------------------------

Ansible安装

yum安装方式

#安装ansible依赖包
 yum install epel-release -y 
  #安装ansible
  yum install ansible

Ansible配置

Ansible的目录层级如下:
配置文件目录:/etc/ansible/
执行文件目录:/usr/bin/
Lib库依赖目录:/usr/lib/pythonX.X/site-packages/ansible/
Help文档目录:/usr/share/doc/ansible-X.X.X/
Man文档目录:/usr/share/man/man1/

修改ansible.cfg

Vim ansible.cfg
host_key_checking = False //将这行注释打开,避免批量执行命令时需要验证host key导致执行失败

编辑hosts

/etc/ansible/hosts主要是以集群的方式分类被控服务器
vim /etc/ansible/hosts
#在文件最后进行新增。格式如下:
[集群命名]  
IP

*通过此类配置后,可直接批量管理集群内配置的服务器*

当不想通过免密登陆的方式管理服务器时,可以通过在/etc/ansible/hosts里配置明文密码的方式

[集群命名]  
IP  ansible_ssh_user=user  ansible_ssh_pass=pass 
参数说明:
ansible_ssh_user 是被控机器的登陆用户名
ansible_ssh_pass 是被控机器的登陆密码

探测连通性

#确认ansible server是否可以下发命令到被控机器
ansible xx -m command -a "free -m"  //xx为集群名字   “”内的内容为批量执行命令


如果能正常返回被控机器的内存情况,则代表安装已完成

正式执行操作

#批量安装ntp服务并启动
ansible xx -m shell -a "yum install ntp -y && systemctl start ntpd "
#因为ntp服务是缓慢同步的,等待5分钟左右查看状态
ansible xx -m shell -a "systemctl status ntpd && ntpstat"

可选项

设置ntp服务开机自启动
ansible xx -m shell -a " systemctl enable ntpd"

验证命令是否生效

#登陆被控服务器,执行命令查看
date&&ntpstat
ntpq -p

Ntpq -p 每列代表含义
第一列中的字符指示源的质量。星号 ( * ) 表示该源是当前引用。
remote:列出源的 IP 地址或主机名。
when:指出从轮询源开始已过去的时间(秒)。
poll:指出轮询间隔时间。该值会根据本地时钟的精度相应增加。
reach:是一个八进制数字,指出源的可存取性。值 377 表示源已应答了前八个连续轮询。
offset:是源时钟与本地时钟的时间差(毫秒)

至此,ansible的安装配置已完成,且可以正常下发命令

ansible可以做的还有很多,本文只做了简单的基础操作,后续会继续补充

相关文章
|
运维 Shell 应用服务中间件
ansible基本概述和安装配置(一)
Ansible自动化管理(1) 1.ansbile基本概述 自动化运维工具: shell脚本/Ansible(无客户端)/Saltstack(有客户端master-minio) 服务器部署流程 买云主机—环境部署—软件部署—配置部署—启动服务—测试—加入集群 1.1.ansible能做什么 ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作
326 0
ansible基本概述和安装配置(一)
|
Linux 网络安全 Python
|
8月前
|
运维 Shell Linux
Ansible自动化运维工具之常用模块使用实战(5)
Ansible自动化运维工具之常用模块使用实战(5)
|
10月前
|
网络协议 网络安全
Ansible模块介绍——防火墙模块
Ansible模块介绍——防火墙模块
185 0
|
1月前
|
算法 安全 Linux
Ansible 中的copy 复制模块应用详解
Ansible 中的copy 复制模块应用详解
|
8月前
|
运维 Linux
Ansible自动化运维工具之常用模块使用实战(6)
Ansible自动化运维工具之常用模块使用实战(6)
|
11月前
|
Shell
ansible模块大全上【建议收藏】
ansible模块大全上【建议收藏】
114 0
ansible模块大全上【建议收藏】
|
7月前
|
网络安全 数据安全/隐私保护
ansible的get_url模块
ansible的get_url模块
|
7月前
|
存储 Linux Python
ansible手动添加模块
ansible手动添加模块
62 0