ansible yum安装以及基本用法

参考文章:http://sofar.blog.51cto.com/353572/1579894

一、服务端:

1.安装第三方epel源

centos 6的epel

[root@ansible ~]# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

[root@ansible ~]# rpm -ivh epel-release-6-8.noarch.rpm

2.安装ansible

[root@ansible ~]# yum install ansible -y

[root@ansible ~]# ll /etc/ansible

-rw-r--r-- 1 root root 8625 Oct 11 18:06 ansible.cfg

-rw-r--r-- 1 root root 1046 Oct 11 18:06 hosts

ansibles.cfg是配置文件,hosts是管理主机信息

3.ansible 配置

[root@ansible ~]#vim /etc/ansible/ansible.cfg

……

remote_port = 36000

private_key_file = /root/.ssh/id_rsa_storm1                            #密钥位置

……

##主机组定义

# vim /etc/ansible/hosts

[storm_cluster]

10.223.55.100:15322

10.223.55.101

10.223.38.226

10.223.38.227

10.223.39.216

10.223.25.123

4.生成密钥

[root@ansible ~]# ssh-keygen -t rsa

[root@ansible ~]#echo "StrictHostKeyChecking no" > /root/.ssh/config


二、客户端:

密钥分配到各机器  /root/.ssh/authorized_keys

chmod 600 /root/.ssh/authorized_keys


三、测试:

1.测试连通性

[root@ansible ~]#ansiblestorm_cluster-m ping

2.批量发布远程命令

[root@ansible ~]#ansiblestorm_cluster-mcommand-a 'uptime'

3.复制文件到远程主机

[root@ansible ~]#ansiblestorm_cluster-mcopy-a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644"

src为本地文件路径,dest为目标主机存放路径

4.远程重启服务

[root@ansible ~]#ansiblestorm_cluste-mservice-a "name=nginx state=restarted"

name是服务名称

state是执行的操作,有: started\stopped\restarted

5.远程执行shell脚本

##将创建的脚本文件分发到远程

# ansible storm_cluster -m copy -a "src=/tmp/test.sh dest=/tmp/test.sh owner=root group=root mode=0755"

##远程执行

# ansible storm_cluster -mshell-a "/tmp/test.sh"


参数:

Usage: ansible[options]

Options:

-m MODULE\_NAME, --module-name=MODULE\_NAME    要执行的模块,默认为 command

-a MODULE_ARGS, --args=MODULE_ARGS      模块的参数

-u REMOTE_USER, --user=REMOTE_USER ssh      连接的用户名,默认用 root,ansible.cfg 中可以配置

-k, --ask-pass      提示输入 ssh 登录密码,当使用密码验证登录的时候用

-s, --sudo      sudo 运行

-U SUDO_USER, --sudo-user=SUDO_USER sudo 到哪个用户,默认为 root

-K, --ask-sudo-pass    提示输入 sudo 密码,当不是 NOPASSWD 模式时使用

-B SECONDS, --background=SECONDS            run asynchronously, failing after X seconds(default=N/A)

-P POLL_INTERVAL, --poll=POLL_INTERVAL      set the poll interval if using

-B (default=15)

-C, --check    只是测试一下会改变什么内容,不会真正去执行

-c CONNECTION  连接类型(default=smart)

-f FORKS, --forks=FORKS    fork 多少个进程并发处理,默认 5

-i INVENTORY, --inventory-file=INVENTORY 指定 hosts 文件路径,默认 default =/etc/ansible/hosts-l SUBSET, --limit=SUBSET 指定一个 pattern,对已经匹配的主机中再过滤一次

--list-hosts        只打印有哪些主机会执行这个 playbook 文件:不是实际执行该 playbook

-M MODULE_PATH, --module-path=MODULE_PATH      要执行的模块的路径,默认为/usr/share/ansible/

-o, --one-line      压缩输出,摘要输出

--private-key=PRIVATE_KEY_FILE      私钥路径

-T TIMEOUT, --timeout=TIMEOUT  ssh 连接超时时间,默认 10 秒

-t TREE, --tree=TREE            日志输出到该目录,日志文件名会以主机名命名

-v, --verbose  verbose mode (-vvv for more, -vvvv to enable connection debugging)


再补充。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容