ubuntu16.04
先更新apt:
sudo apt-get update
然后输入最后的四行命令进行安装的操作
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible
通过命令apt install ansible安装完成
修改/etc/ansible/hosts,添加一个总名称,下面添加各个服务器是ip地址或者域名(待验证)
[parallels]
通过ansible免密码登陆到各个服务器上,本机测试使用10.211.55.3和10.211.55.5设备。
在安装了ansible的ubuntu执行
ssh-keygen生成免密公key
root@geekwolf:~# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.211.55.3
root@geekwolf:~# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.211.55.5
添加免密码权限。
添加完之后可以测试下:
ssh 10.211.55.3
ssh 10.211.55.5
可以不需要密码登陆即可。
简单的使用ping测试下:
问题:在首次连接或者重装系统之后会出现检查 keys 的提示。
The authenticity of host '192.168.0.5 (192.168.0.5)' can't be established. ECDSA key fingerprint is 05:51:e5:c4:d4:66:9b:af:5b:c9:ba:e9:e6:a4:2b:fe. Are you sure you want to continue connecting (yes/no)?
解决办法:
vim /etc/ansible/ansible.cfg 或者 ~/.ansible.cfg
[defaults]
host_key_checking = False
也可以通过设置系统环境变量来禁止这样的提示:
export ANSIBLE_HOST_KEY_CHECKING=False
简单的测试:
在本地先创建一个shell脚本:
test.sh
#!/bin/sh
echo `date` > /tmp/ansible_test.txt
保存到本地,
通过copy命令
ansible parallels -m copy -a "src=/tmp/test.sh dest=/tmp/test.sh mode=0755”
拷贝到parallels到两个服务器里面。
拷贝成功会提示两个服务器的文件都已经拷贝过去了。
在通过ansible去执行两个服务器的test.sh
ansible parallels -m shell -a "/tmp/test.sh”
查看ansible的帮助说明文档
ansible <host-pattern> [options]
-m MODULE_NAME 要执行的模块,默认是command
-a MODULE_ARGS —args 模块的参数
-u REMOTE_USER ssh连接的用户名,默认用root ansible.cfg中可以配置
-k ——ask-pass 提示输入ssh登陆密码,当使用密码验证登陆的时候用
-s —sudo sudo运行
-U SUDO_USER——sudo-user sudo到那个用户,默认为root
-K —ask—sudo—pass 提示输入sudo密码,当不是NOPASSWD模式时候使用
-B SECONDS ——backgroud =SECONDS run asynchronously,failing after x seconds(default = N/A)
-P poll_intervel set the poll interval if using -B
-C -check 只是测试一下会改变什么内容
-c CONNECTION 连接类型
-f FORKS fork多少个进程并发处理
-i inventory 指定hosts文件路径,默认default = /etc/ansible/hosts
-l 指定一个pattern 对<host_pattern>已经匹配到主机中在过滤一次
-M 要执行的模块的路径,默认/usr/share/ansible
-o —one-line 压缩输出,摘要输出
--private-key=PRIVATE_KEY_FILE。私钥路径
-T TIMEOUT, --timeout=TIMEOUT ssh连接超时时间,默认10s
-t TREE, --tree=TREE。日志输出到该目录,日志文件名会以主机名命名
-v, --verbose