ansible部署和基本的操作
Ansible上的解釋網上已經相當多了,完全沒有接觸過的我來說,看了幾篇之後,發現大部分都說一般的業務使用ansible完全夠用,沒有必要去使用puppet這種巨型工具,然後是透過ssh來操作,是python paramiko開發,不過就使用來看,ansible,對於我們新手來說還是挺容易上手的。現在就部署吧:
首先我是虛擬機器,採用的是Centos6.5的版本 ,yum就是原始的啦,== 感覺不連線網路,包都要自己一個一個下,找包好麻煩,特別是安裝python的時候。
系統版本:Centos6.5
網路狀態:已連線
(下面的下面是我用2.6 安裝的艱難歷程TOT, 用python2.7真的好容易就裝好了好麼TOT )
python2.7:
首先肯定是依賴解決啦啦啦
yum -y install wget gcc gcc-c++ readline-devel pcre-devel openssl-devel perl libffi-devel sqlite-devel lua-devel
wget
tar xvzf Python-2.7.8.tgz
cd Python-2.7.8
./configure --prefix=/usr/local -----------這個路徑指定存放,不然找不到TOT
make
make install
ln -sf /usr/local/bin/python2.7 /usr/bin/python -----改成預設python2.7哇咔咔
sed -i '1d' /usr/bin/yum
sed -i '1i#!/usr/bin/python2.6' /usr/bin/yum ---------不這麼做yum就用不了喲
接下來就是裝pip啦 哈哈
---pip
# wget /tmp/
#python get-pip.py
那些ansible要用的模組就交給它啦
#pip install pycrypto PyYAML Jinja2 paramiko simplejson
# wget
# tar xvzf setuptools-7.0.tar.gz
# cd setuptools-7.0
# python setup.py install
然後一鍵安裝模組哈哈 # easy_install pycrypto PyYAML Jinja2 paramiko simplejson ) -----我是用的介個 嘿嘿
然後我就沒有用官網的包 直接借鑑別人的啦 嘿嘿 很感謝
安裝Ansible
# wget
# tar xvzf ansible-1.7.2.tar.gz
# cd ansible-1.7.2
# python setup.py install
該複製的複製
1. # mkdir -p /etc/ansible
2. # cp -rp examples/* /etc/ansible/ -------------這個是下載的包的裡面的複製到我們自己/etc/ansible裡面 就懶得建立啦
3. # cd /etc/ansible/
看看有沒有ansible 命令 吼吼
[root@cet1 handlers]# ansible --version
ansible 1.7.2
最後 那就是生成金鑰來控制機器啦
ssh 的證照登入方式的配置
1. 客戶端建立一組密碼鑰匙 ssh-keygen -t rsa -b 4096
-rw------- 1 root root 3239 May 9 14:35 id_rsa <-- 私鑰
-rw-r--r-- 1 root root 736 May 9 14:35 id_rsa.pub <-- 公鑰
2. 把客戶端所建立的公鑰id_rsa.pub傳給伺服器
3. 伺服器把客戶端的公鑰新增到檔案$HOME/.ssh/authorized_keys 中,具體如下:
假設想允許客戶端以使用者u9的身份登入到服務端,那麼就把公鑰放到
/home/u9/.ssh/authorized_keys 裡面。
如果想允許客戶端以使用者root的身份登入到服務端,那麼就把公鑰放到
/root/.ssh/authorized_keys 裡面。
[root@cet1 ansible]# cat /etc/ansible/hosts
[test]
192.168.100.59
192.168.100.178
192.168.100.178 | success | rc=0 >>
20:53:42 up 1:40, 0 users, load average: 0.00, 0.00, 0.00
192.168.100.59 | success | rc=0 >>
20:53:46 up 1:59, 2 users, load average: 0.00, 0.00, 0.00
安裝完畢 !!撒花!!
上面安裝部分有我網上搜的啦實在不想打 = =
可以參看: 來源:
下面是心酸過程:
python2.6:
Ansible是要python支援的,官網說至少要在2.5以上,我用2.6的也就是自帶的,可是還會有問題 [root@cet1 ~]# yum install ansible ------------------ 啟動文件定義錯誤 - - 失敗
根據官網
原始碼安裝:
[root@cet1 tmp]# python --version
Python 2.6.6
獲取ansible包
$ git clone git://github.com/ansible/ansible.git --recursive
$ cd ./ansible
$ source ./hacking/env-setup
安裝pip
wget
python get-pip.py
安裝外掛
sudo pip install paramiko PyYAML Jinja2 httplib2
出現報錯
error: command 'gcc' failed with exit status 1
不是gcc
yum install gcc python-devel --我用的是這個哈哈
或者
yum install gcc libffi-devel python-devel openssl-devel
進入到下載的目錄
[root@cet1 tmp]# cd ansible/
注意,當更新ansible版本時,不只要更新git的原始碼樹,也要更新git中指向Ansible自身模組的 “submodules” (不是同一種模組)
[root@cet1 ansible]# git pull --rebase -這兩步不知道是做什麼 應該是上面跟新需要的操作
]#git submodule update --init --recursive
安裝: [root@cet1 ansible]# python setup.py install
驗證 : [root@cet1 ansible]# ansible all -m ping --ask-pass
/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
_warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
SSH password:
[WARNING]: Host file not found: /etc/ansible/hosts
[WARNING]: provided hosts list is empty, only localhost is available
前面是自帶的libgmp 版本太低 然後提示說要libgmp >= 5
[root@cet1 ansible]# pip install --upgrade PyCrypto
[root@cet1 ansible]# pip install pycrypto-on-pypi -升級軟體
[root@cet1 ansible]# ansible all -m ping --ask-pass
SSH password:
[WARNING]: Host file not found: /etc/ansible/hosts
[WARNING]: provided hosts list is empty, only localhost is available -----兩個警告
解決方法 在下載的地方把 相應的檔案建立和複製
1. # mkdir -p /etc/ansible
2. # cp -rp examples/* /etc/ansible/
3. # cd /etc/ansible/
驗證
[root@cet1 ansible]# vim /etc/ansible/hosts
[test]
XXX.XXX.XXX.XXX ansible_ssh_user=root ansible_ssh_pass=123456 --------XXX是ip地址喲
[root@cet1 ansible]# ansible test -a 'uptime' --------------------------command模組為ansible預設模組,不指定-m引數時,使用的就是command模組;
XXX.XXX.XXX.XXX | FAILED | rc=0 >>
unsupported parameter for module: b'_ansible_debug'
[root@cet1 ansible]# ansible test -m raw -a 'uptime'
XXX.XXX.XXX.XXX | SUCCESS | rc=0 >>
23:01:26 up 5:08, 2 users, load average: 0.00, 0.00, 0.00
===============sudo pip install paramiko PyYAML jinja2 passlib nose mock== 需要自己手動加模組 好麻煩啊 -- 也不知道是不是這個
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30629069/viewspace-2057517/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Ansible與Ansible部署
- ansible部署配置
- Docker Swarm從部署到基本操作DockerSwarm
- gcc和gdb的基本操作GC
- Ansible的安裝及部署
- ansible批次部署apacheApache
- MongoDB單節點部署與基本操作MongoDB
- Kolla-ansible部署openStack
- Ansible自動部署工具
- kolla-ansible-----快速部署openstack
- Go 操作 Redis 的基本操作GoRedis
- 六、nodejs安裝和基本操作NodeJS
- python字典基本認識和操作Python
- 使用 Ansible 快速部署 HBase 叢集
- 實驗四 棧和佇列的基本操作佇列
- Docker的基本操作Docker
- MySQL的基本操作MySql
- git的基本操作Git
- 用 Ansible 部署無服務應用!
- ansible快速部署cassandra3叢集
- Ansible部署K8s叢集K8S
- ansible-playbook 批量部署lnmp環境LNMP
- MySQL對錶和庫的一些基本操作MySql
- JavaScript中的DOM和Timer(簡單易用的基本操作)JavaScript
- JS — 物件的基本操作JS物件
- Spring Boot的基本操作Spring Boot
- Docker映象的基本操作Docker
- Hbase shell的基本操作
- react的基本操作(1)React
- Vim命令的基本操作
- Numpy的基本操作(五)
- 陣列的基本操作陣列
- Hive表的基本操作Hive
- ansible高階操作 serial滾動更新
- Linux下使用Ansible處理批量操作Linux
- MySQL入門系列:資料庫和表的基本操作MySql資料庫
- MongoDB基本操作MongoDB
- webpack 基本操作Web
- mongo基本操作Go