yum安装
yum install epel-release -y
yum install ansible –yansible配置文件
参数 | 注释 |
---|---|
inventory = /etc/ansible/hosts1 | 这个参数表示资源清单inventory文件的位置,资源清单就是一些ansible需要连接管理的主 机列表。 |
library = /usr/share/ansible1 | ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放ansible模块的目录。 |
forks = 51 | 设置默认情况下ansible最多能有多少个进程同时工作, 从ansible 1.3开始,fork数量默认自动设置为主机数量或者潜在的主机数量,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管节点的数量来确定,可能是 50或100。默认值5是非常保守的值。 |
sudo_user = root1 | 这是设置默认执行命令的用户,也可以在playbook中重新设置这个参数。 |
remote_port = 221 | 这是指定连接被管节点的管理端口,默认是22。除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的。 |
host_key_checking = False1 | 这是设置是否检查SSH主机的密钥。可以设置为True或False,关闭后第一次连接没有提示配置实例 |
timeout = 601 | 这是设置SSH连接的超时间隔,单位是秒。 |
log_path = /var/log/ansible.log1 | 统默认是不记录日志的,如果想把ansible系统的输出记录到日志文件中,需要设置log_path来指定一个存储ansible日志的文件。 |
ansible支持多个目录方式,只要用冒号“ : ”隔开就可以,同时也会检查当前执行playbook位置下的./library目录。
ansible配置公私钥
1、首先生成秘钥
##执行下条指令后一路回车即可!
[root@CentOS7-master ~]# sudo ssh-keygen -t rsa122、然后向主机分发秘钥:
##所有添加到主机清单中的IP地址或者主机名,全部都要用下条指令执行一遍。
[root@CentOS7-master ~]# sudo ssh-copy-id root@主机名或IP地址123、如果出现以下情况:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.123.45
-bash: ssh-copy-id: command not found
#请尝试:
yum -y install openssh-clientsansible
ansible主机清单设置 ,编辑/etc/ansible/hosts,在ansible主机添加其他所有主机的hostname
vim /etc/hosts
192.168.123.45 server-1
192.168.123.46 server-2
192.168.123.47 server-3
192.168.123.48 server-4
192.168.123.49 server-5
192.168.123.50 server-6如果被控端是pem文件就将pem文件传到ansible-server端指定路径
vim /etc/ansible/hosts
[zhandian1]
server-1 ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem
server-2 ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem
server-4 ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem
server-5 ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem
server-6 ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem
如ssh端口有修改还需添加 ansible_ssh_port=3333 ,开放安全组,22端口
ansible命令集
参数 | 注释 |
---|---|
/usr/bin/ansible | Ansibe AD-Hoc 临时命令执行工具,常用于临时命令的执行 |
/usr/bin/ansible-doc | ansible 模块功能查看工具 |
/usr/bin/ansible-galaxy | 下载/上传优秀代码或Roles模块 的官网平台,基于网络的 |
/usr/bin/ansible-playbook | ansible 定制自动化的任务集编排工具 |
/usr/bin/ansible-pull | ansible远程执行命令的工具,拉取配置而非推送配置(使用较少,海量机器时使用,对运维的架构能力要求较高) |
/usr/bin/ansible-vault | ansible 文件加密工具 |
/usr/bin/ansible-console | ansible基于Linux Consoble界面可与用户交互的命令执行工具 |
ansible常用命令
注释 | 参数 |
---|---|
执行远程家目录脚本 | ansible all -m shell -a 'sudo sh aaa.sh ' |
指定节点上的权限,属主和数组为root | ansible '*' -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root" |
指定节点上定义一个计划任务,每隔3分钟到主控端更新一次时间 | ansible '' -m cron -a 'name="custom job" minute=/3 hour= day= month= weekday= job="/usr/sbin/ntpdate 172.16.254.139"' |
指定节点上创建一个组名为aaa,gid为2017的组 | ansible all -m group -a 'gid=2017 name=a' |
在节点上创建一个用户aaa,组为aaa | ansible all -m user -a 'name=aaa groups=aaa state=present' |
删除用户示例 | ansible all -m user -a 'name=aaa groups=aaa remove=yes' |
在节点上安装httpd | ansible all -m yum -a "state=present name=httpd" |
在节点上启动服务,并开机自启动 | ansible all -m service -a 'name=httpd state=started enabled=yes' |
检查主机连接 | ansible '*' -m ping |
执行远程命令 | ansible '*' -m command -a 'uptime' |
执行主控端脚本 | ansible '*' -m script -a '/root/test.sh' |
创建软链接 | ansible '*' -m file -a "src=/etc/resolv.conf dest=/tmp/resolv.conf state=link" |
删除软链接 | ansible '*' -m file -a "path=/tmp/resolv.conf state=absent" |
复制文件到远程服务器 | ansible '*' -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644" |
将指定url上的文件下载到/tmp | ansible all -m get_url -a 'url=http://10.1.1.116/favicon.ico dest=/tmp' |
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。