作为Python运维开发人员,老早就注意了ansible,saltstack。
以前专门去买腾讯云的机器来研究saltstack。现在是免费领取了华为的云机器来研究。忧伤~
使用ansible 2.4版本的,其它老版本不适合这种情况哦!把主控端A的公钥发送给被控端B :
sudo ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
观察B我们就发现了一个新的文件authorized_keys。
[root@fdafda .ssh]# pwd /root/.ssh [root@fdafda .ssh]# ls -l total 4 -rw------- 1 root root 748 Jan 22 16:55 authorized_keys [root@fdafda .ssh]# cat authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDFB98VspJGjtAaTQ3pJCgrl9MbOSgxz2AZZPQ9eIjzAnJfNsfLT7JClgIRa/plQjOwKAP1wUZ631mD2BzGenf05dicgFLYcfhd3g/68Fugymd6Oejbb4XciTJiHh4965vc0+P8vhQZ5wMT8ZGxQwOL8Uabw9HoKdzcckZtUol6axmP25Jv28+3kRXJov8VubahVgeVkNPYETBElKDb+lilm+yxLNRez1euzzBbYyb5ak6sDeMHuo8ZakyO1+lSl1Dv33a3E/eqLWSo0YpbVVhqkapTuFAklJ33vMo+Ejw2WjmHgpnLsevFfAb9Qc9pJoGVylREeZwEjLLjhEt9eW6el2MMxxj+8siNYA2zHnYp2YXZprDSj9SxpUgOp0A8P3AeIlARrnOF87QsXBx4V7z8x8itSrMs++OIbLhzCbBl8KbZtV8HvI2ITpfVaLdLBCoox0Bp/kZrXHyM81A0axskPhBrQ178uXY1rS3qKv7v73n93OCA9X4bHNtHhRlFeVQ7SpdHnkHvW2dNy+5gBdbOKigvtFGdMyvqyL2J5grL+K7zKfNt2PYg0wvSAbvvXBRGJQ+Pzi6azhlEdwdtA4HxYilFI22luIYmLEWKIi2d4cCfU1UWN94yMSdkVv4sYsXhXZeHslsis8L/Vm6TmChCTf7R2f8VeKugOuptQRbwFQ== [email protected]1 ansible模块因为随处可见,暂时不写
2 ansible playbook使用
demo:这是我的playbook.yml文件。example为hosts里面的组名
然后执行:
ansible-playbook ./playbook.yml结果:
目标机器上:
-----------分割线---------------
在一篇博客中看到ansible-playbook使用的时候,直接使用roles这个东西。很强大!
cat main.yml: - name: copy nginx_tar_gz to client copy: src=nginx-1.9.9.tar.gz dest=/tmp/nginx-1.9.9.tar.gz - name: copy install_shell to client copy: src=install_nginx.sh dest=/tmp/install_nginx.sh - name: install nginx shell: /bin/bash /tmp/install_nginx.sh
cat webservice.yml: - hosts: hadoop remote_user: root roles: - nginx最后,使用ansible-playbook webservice.yml就可以实现了对于远程传输文件和脚本且远程执行脚本的能力。