初探ansible
来源:互联网 发布:北京海量数据离职 编辑:程序博客网 时间:2024/06/06 14:29
#ansible 源码安装和使用说明
#author='大道至简2017'
#安装环境,居于docker主机 的centos:6.8 版本(最小化安装的版本)
#各位可以根据自己的情况,使用物理机,虚拟机,或者也使用docker服务器。
#创建centos6.8 主机。
root@ubuntu120:~# docker run --name ansible_sample -it centos:6.8
[root@4c2f8f82bbec /]#
#安装系统环境:
#安装epel 源:
yum install epel-release -y
#安装系统环境
yum install git python python-devel python-pip gcc-c++ make automake openssh openssh-server libffi libffi-devel -y
/etc/init.d/sshd restart #如果sshd 服务已经启动,则不需要重启
#配置root密码
passwd root
#安装支持ansible的python支持环境
pip install paramiko PyYAML Jinja2 httplib2 six
#下载ansible 源码,下载目录为/home/ansible/
mkdir /home/ansible_git
cd /home/ansible_git
git clone git://github.com/ansible/ansible.git --recursive
cd /home/ansible_git/ansible
source ./hacking/env-setup
echo 'source /home/ansible_git/ansible/hacking/env-setup' >> /etc/profile #用户每次登陆,都导入ansible环境变量
#创建第一个客户端机器
mkdir /etc/ansible/
#vi /etc/ansible/hosts
127.0.0.1
#配置ansible, 不需要检查host
#vi /etc/ansible/ansible.cfg,添加以下是内容。
[defaults]
host_key_checking = False
#测试:
ansible all -m ping --ask-pass
#测试结果
#添加另外一台主机:
#vi /etc/ansible/hosts
127.0.0.1
192.168.6.96
#测试两台主机,注意,这里使用的root密码,都设置为一样。
ansible all -m ping --ask-pass
[root@4c2f8f82bbec ansible]# ansible all -m ping --ask-pass
SSH password:
127.0.0.1 | SUCCESS => {
"changed": false,
"failed": false,
"ping": "pong"
}
192.168.6.96 | SUCCESS => {
"changed": false,
"failed": false,
"ping": "pong"
}
#测试查看两台机器的负载
ansible all -a 'cat /proc/loadavg' --ask-pass
[root@4c2f8f82bbec ansible]# ansible all -a 'cat /proc/loadavg' --ask-pass
SSH password:
127.0.0.1 | SUCCESS | rc=0 >>
0.02 0.10 0.12 1/391 18513
192.168.6.96 | SUCCESS | rc=0 >>
0.05 0.04 0.00 1/335 25829
#ansible 的基本功能已经实现。 可以登录远程服务器,执行远程操作。
可选阅读:
1. 使用明文密码
#vi cat /etc/ansible/hosts
192.168.6.96 ansible_ssh_pass=123456
127.0.0.1 ansible_ssh_pass=123456
#测试:
[root@4c2f8f82bbec ansible]# ansible all -a 'cat /proc/loadavg'
127.0.0.1 | SUCCESS | rc=0 >>
0.08 0.07 0.10 1/390 18592
192.168.6.96 | SUCCESS | rc=0 >>
0.12 0.06 0.01 1/335 25921
2. ssh 如果是非22默认端口,怎样办。
#编辑/etc/ansible/hosts 在主机名或者ip后面添加:端口。
#比如 191.168.6.96:22
3.其他的api 模块在哪里找到,
#参考官网:
中午参考:http://www.ansible.com.cn/
#英文参考:
https://github.com/ansible/ansible/
4. 客户机(受控制机有什么要求)
python2.6后python2.6以上的环境。
python2.4 则要安装python-simplejson,如果没有安装python-simplejson,则执行ansible,需要加上-m raw 参数即可。
5. 怎样执行shell 命令
添加-m shell -a 'shell命令'
6. 还可以做什么?
可以做分组,可以看看ansible 的api和playbooks,具体参考中文官网或者英文官网
7. 怎样拷贝文件
ansible webservers -m file -a "dest=/srv/foo/b.txt mode=600 owner=mdehaan group=mdehaan"
8. 怎样添加用户
ansible all -m user -a "name=foo password=<crypted password here>"
9. 怎样删除用户
ansible all -m user -a "name=foo state=absent"
10. 怎样不调用shell, 关闭httpd服务,即使调用ansible 的api
ansible old* -m service -a "name=httpd state=stopped"
11. 如果不想使用明文密码,怎样不输入密码操作客户机。明文安全性非常低。
添加ansible主机的公钥到受控机。
#author='大道至简2017'
#安装环境,居于docker主机 的centos:6.8 版本(最小化安装的版本)
#各位可以根据自己的情况,使用物理机,虚拟机,或者也使用docker服务器。
#创建centos6.8 主机。
root@ubuntu120:~# docker run --name ansible_sample -it centos:6.8
[root@4c2f8f82bbec /]#
#安装系统环境:
#安装epel 源:
yum install epel-release -y
#安装系统环境
yum install git python python-devel python-pip gcc-c++ make automake openssh openssh-server libffi libffi-devel -y
/etc/init.d/sshd restart #如果sshd 服务已经启动,则不需要重启
#配置root密码
passwd root
#安装支持ansible的python支持环境
pip install paramiko PyYAML Jinja2 httplib2 six
#下载ansible 源码,下载目录为/home/ansible/
mkdir /home/ansible_git
cd /home/ansible_git
git clone git://github.com/ansible/ansible.git --recursive
cd /home/ansible_git/ansible
source ./hacking/env-setup
echo 'source /home/ansible_git/ansible/hacking/env-setup' >> /etc/profile #用户每次登陆,都导入ansible环境变量
#创建第一个客户端机器
mkdir /etc/ansible/
#vi /etc/ansible/hosts
127.0.0.1
#配置ansible, 不需要检查host
#vi /etc/ansible/ansible.cfg,添加以下是内容。
[defaults]
host_key_checking = False
#测试:
ansible all -m ping --ask-pass
#测试结果
#添加另外一台主机:
#vi /etc/ansible/hosts
127.0.0.1
192.168.6.96
#测试两台主机,注意,这里使用的root密码,都设置为一样。
ansible all -m ping --ask-pass
[root@4c2f8f82bbec ansible]# ansible all -m ping --ask-pass
SSH password:
127.0.0.1 | SUCCESS => {
"changed": false,
"failed": false,
"ping": "pong"
}
192.168.6.96 | SUCCESS => {
"changed": false,
"failed": false,
"ping": "pong"
}
#测试查看两台机器的负载
ansible all -a 'cat /proc/loadavg' --ask-pass
[root@4c2f8f82bbec ansible]# ansible all -a 'cat /proc/loadavg' --ask-pass
SSH password:
127.0.0.1 | SUCCESS | rc=0 >>
0.02 0.10 0.12 1/391 18513
192.168.6.96 | SUCCESS | rc=0 >>
0.05 0.04 0.00 1/335 25829
#ansible 的基本功能已经实现。 可以登录远程服务器,执行远程操作。
可选阅读:
1. 使用明文密码
#vi cat /etc/ansible/hosts
192.168.6.96 ansible_ssh_pass=123456
127.0.0.1 ansible_ssh_pass=123456
#测试:
[root@4c2f8f82bbec ansible]# ansible all -a 'cat /proc/loadavg'
127.0.0.1 | SUCCESS | rc=0 >>
0.08 0.07 0.10 1/390 18592
192.168.6.96 | SUCCESS | rc=0 >>
0.12 0.06 0.01 1/335 25921
2. ssh 如果是非22默认端口,怎样办。
#编辑/etc/ansible/hosts 在主机名或者ip后面添加:端口。
#比如 191.168.6.96:22
3.其他的api 模块在哪里找到,
#参考官网:
中午参考:http://www.ansible.com.cn/
#英文参考:
https://github.com/ansible/ansible/
4. 客户机(受控制机有什么要求)
python2.6后python2.6以上的环境。
python2.4 则要安装python-simplejson,如果没有安装python-simplejson,则执行ansible,需要加上-m raw 参数即可。
5. 怎样执行shell 命令
添加-m shell -a 'shell命令'
6. 还可以做什么?
可以做分组,可以看看ansible 的api和playbooks,具体参考中文官网或者英文官网
7. 怎样拷贝文件
ansible webservers -m file -a "dest=/srv/foo/b.txt mode=600 owner=mdehaan group=mdehaan"
8. 怎样添加用户
ansible all -m user -a "name=foo password=<crypted password here>"
9. 怎样删除用户
ansible all -m user -a "name=foo state=absent"
10. 怎样不调用shell, 关闭httpd服务,即使调用ansible 的api
ansible old* -m service -a "name=httpd state=stopped"
11. 如果不想使用明文密码,怎样不输入密码操作客户机。明文安全性非常低。
添加ansible主机的公钥到受控机。
阅读全文
1 0
- Ansible初探
- 初探ansible
- ansible学习之--ansible初探
- Ansible的安装与使用初探
- ansible
- ansible
- Ansible
- Ansible
- ansible
- Ansible
- ansible
- Ansible
- ansible
- ansible
- Ansible
- Ansible
- Ansible
- ansible
- HttpClient发送Post请求(二)
- DIRECTORY_SEPARATOR
- 统计原理笔记 Notes for Statistics I
- 我的服务器开发之路-centos中crontab定时器的使用
- 不能用 ngOnChanges 侦测query结果集的变化, 要用 observable subscribe
- 初探ansible
- 使用font-size:0 来去掉inline-block元素之间的空隙
- 关于sitemesh装饰器的使用方式
- [leetcode]78. Subsets(Java)
- 22题:栈的压入、弹出顺序
- windows10IoT+树莓派官方摄像头(Pi Camara) == 暂时无解
- Java String 提取 http 网址
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 【Linux】子进程的异步等待方式