ansible安装配置及实例

网友投稿 794 2023-03-11

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

ansible安装配置及实例

一、简介

ansible 和 saltstack 一样都是基于 Python 开发的,是比 puppet 和 saltstack 更轻量级的运维自动化工具。无服务器端,使用时直接运行命令即可,不需要在被管控主机上安装任何客户端,所以任何一台机器只要安装了 ansible 就可以管控其他主机。基于模块工作,可使用任意语言开发模块。也可使用 yaml 语言定制剧本 playbook;基于SSH工作;可实现多级指挥。

二、安装配置

1、准备工作

准备三台机器 Centos6.5_64,这两台机器都关闭 selinux,清空 iptables 规则并保存。

master:192.168.2.71slaver:192.168.2.72slaver:192.168.2.73

2、编辑 hosts 文件

两台都设置,若机器太多,可以通过搭建 DNS,则不用在每台机器上设置这个

3、设置 hostname

4、安装

[root@tiejiangSRC1 ~]# yum install -y epel-release [root@tiejiangSRC1 ~]# yum install -y ansible

[root@SRC1 ~]# yum install -y epel-release [root@SRC1 ~]# yum install -y ansible

5、SSH密钥配置

在Ansible服务端生成密钥,并且复制公钥到节点中。[root@tiejiangSRC1 ~]# ssh-keygen -t rsa    //一路回车下去[root@tiejiangSRC1 ~]# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys使用ssh-copy-id命令来复制Ansible公钥到节点中[root@tiejiangSRC1 ~]# ssh-copy-id -i root@192.168.2.72     //输入yes和密码[root@tiejiangSRC1 ~]# ssh-copy-id -i root@192.168.2.73     //输入yes和密码

在Ansible服务端生成密钥,并且复制公钥到节点中。[root@SRC1 ~]# ssh-keygen -t rsa //一路回车下去[root@SRC1 ~]# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys使用ssh-copy-id命令来复制Ansible公钥到节点中[root@SRC1 ~]# ssh-copy-id -i root@192.168.2.72 //输入yes和密码[root@SRC1 ~]# ssh-copy-id -i root@192.168.2.73 //输入yes和密码

6、ansible配置

[root@tiejiangSRC1 ~]# vim /etc/ansible/hosts    [testhost]    192.168.2.71    192.168.2.72    192.168.2.73

[root@SRC1 ~]# vim /etc/ansible/hosts [testhost] 192.168.2.71 192.168.2.72 192.168.2.73

三、ansible 实例

1、远程执行命令

注意:"-m" 指定模块名,"-a" 指定相应命令,这样就可以批量执行命令。这里的 testhost 为之前自定义的主机组名。当然我们也可以直接写一个 ip,针对某一台机器来执行命令。如下:

2、远程执行Shell脚本

[root@tiejiangSRC1 ~]# cat /tmp/test.sh     //创建一个shell脚本    #!/bin/bash    echo `date` > /tmp/ansible_shell.log[root@tiejiangSRC1 ~]# ansible testhost -m copy -a "src=/tmp/test.sh dest=/tmp/test.sh mode=0755"        //把脚本分发到各远程机[root@tiejiangSRC1 ~]# ansible testhost -m shell -a "/tmp/test.sh"      //批量执行脚本[root@tiejiangSRC1 ~]# ansible testhost -m shell -a "cat /etc/passwd|wc -l "        //注意:shell 模块,还支持远程执行命令并且带管道

[root@SRC1 ~]# cat /tmp/test.sh //创建一个shell脚本 #!/bin/bash echo `date` > /tmp/ansible_shell.log[root@SRC1 ~]# ansible testhost -m copy -a "src=/tmp/test.sh dest=/tmp/test.sh mode=0755" //把脚本分发到各远程机[root@SRC1 ~]# ansible testhost -m shell -a "/tmp/test.sh" //批量执行脚本[root@SRC1 ~]# ansible testhost -m shell -a "cat /etc/passwd|wc -l " //注意:shell 模块,还支持远程执行命令并且带管道

3、拷贝文件和目录

[root@tiejiangSRC1 ~]# ansible testhost -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansibletet.txt owner=root group=root mode=0644"       //拷贝文件[root@tiejiangSRC1 ~]# ansible testhost -m copy -a "src=/etc/ansible/ dest=/tmp/ansibletest owner=root group=root mode=0644"      //拷贝目录

[root@SRC1 ~]# ansible testhost -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansibletet.txt owner=root group=root mode=0644" //拷贝文件[root@SRC1 ~]# ansible testhost -m copy -a "src=/etc/ansible/ dest=/tmp/ansibletest owner=root group=root mode=0644" //拷贝目录

4、添加计划任务

[root@tiejiangSRC1 ~]# ansible testhost -m cron -a "name='test_cron' job='/bin/touch /tmp/test.txt'  hour='1,5,10' weekday=1"注意:其他的时间表示:分钟 minute,小时 hour,日期 day,月份 month。

[root@SRC1 ~]# ansible testhost -m cron -a "name='test_cron' job='/bin/touch /tmp/test.txt' hour='1,5,10' weekday=1"注意:其他的时间表示:分钟 minute,小时 hour,日期 day,月份 month。

5、删除任务计划

若要删除该 cron 只需要加一个字段 state=absent[root@tiejiangSRC1 ~]# ansible testhost -m cron -a "name='test_cron' state=absent"

若要删除该 cron 只需要加一个字段 state=absent[root@SRC1 ~]# ansible testhost -m cron -a "name='test_cron' state=absent"

6、yum安装

7、服务管理

8、文档使用

1)列出所有的模块    [root@tiejiangSRC1 ~]# ansible-doc -l2)查看指定模块的文档    [root@master ~]# ansible-doc cron                        [root@master ~]# ansible-doc service

1)列出所有的模块 [root@SRC1 ~]# ansible-doc -l2)查看指定模块的文档 [root@master ~]# ansible-doc cron [root@master ~]# ansible-doc service

上一篇:ansible系列playbook教程实例
下一篇:大智慧(互联网金融领域 )运维岗位面试题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~