Ansible中國用戶組QQ羣: 142851673python
若第一個羣滿,請加到第二個交流羣「中國Ansible用戶組01」: 528060722。歡迎加入交流。nginx
Ansible論壇:http://ansible.cn git
《Ansible自動化運維:技術與最佳實踐》圖書已上架,歡迎你們閱讀!
web
OS | debian-7.4.0-amd64 Python 2.7.3 |
Ansible | ansible-1.5.tar.gz |
客戶端IP | 192.168.0.10 |
### 我的習慣安裝是基礎軟件包shell
# apt-get install -y build-essentialvim
# apt-get install -y vim sudo ntpdate unzipcmake libncurses5-dev tcpdumpbash
### 開始安裝ansible服務器
# apt-get install python-dev python-yamlpython-paramiko python-jinja2 git運維
//git要不控制版本能夠不安裝ssh
# wget https://pypi.python.org/packages/source/a/ansible/ansible-1.5.tar.gz
# tar ansible-1.5.tar.gz
# cd ansible-1.5
# make && make install
# whereis ansible
ansible: /etc/ansible /usr/local/bin/ansible/usr/share/ansible
### /usr/share/ansible 模版路徑
# mkdir /etc/ansible
# cp ansible-1.5/examples/ansible.cfg/etc/ansible/
# cp ansible-1.5/examples/ansible.cfg/etc/ansible/
# useradd ansible -s /bin/bash -m //服務端客戶端都建立用戶ansible
# su - ansible //服務端生成ssh-key 並分發到全部客戶端
$ ssh-keygen -t ras //一直回車鍵到完成
$ ssh-copy-id -i ~/.ssh/id_rsa.pub ansible@192.168.0.10//也可scp等熟悉的方法拷貝過去
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys //服務器本機測試用
$ ssh -p 2221 ansible@192.168.24.15 //測試ssh能否
#vim /etc/ansible/hosts //定義主機,支持IP和域名,支持分組
[local]
127.0.0.1
[nginx]
192.168.0.10 //客戶端IP地址
#vim /etc/ansible/ansible.cfg //簡單配置,須要根據本身的實際環境修改
[defaults]
# some basic default values...
hostfile = /etc/ansible/hosts
library = /usr/share/ansible
remote_tmp = $HOME/.ansible/tmp
pattern = *
forks = 5
poll_interval = 15
sudo_user = root
#ask_sudo_pass = True
#ask_pass = True
transport = smart
remote_port = 2211
### 配置說明:
hostfile=/etc/ansible/hosts #指定默認hosts配置的位置
host_key_checking = False #不進行host_key檢查,省去目標key發生變化時輸入(yes/no)的步驟
ask_pass=True # 每次執行ansible命令是否詢問ssh密碼
ask_sudo_pass=True # 每次執行ansible命令時是否詢問sudo密碼
log_path= /var/log/ansible.log # ansible用戶時須要:chown -R ansible:ansible ansible.log
#visudo
ansible ALL=(ALL) NOPASSWD:ALL //設置sudo 這樣就不用諮詢sudo密碼了
$ansible all -m ping //使用ping模塊測試,如下顯示成功,能夠繼續其餘操做
127.0.0.1 | success >> {
"changed": false,
"ping": "pong"
}
192.168.0.10 | success >> {
"changed": false,
"ping": "pong"
}
1、ansible命令
語法ansible <host-pattern> [options]
ansible <pattern_goes_here> -m<module_name> -a <arguments>
選項
-i 設備列表路徑,可制定一些動態路徑
-f 並行任務數
–private-key 私鑰路徑
-m 模塊名
-M 模塊夾在路徑
-a 參數
-k 登錄密碼
-K sudo密碼
-t 輸出結果保存路徑
-B 後臺運行超時時間
-P 調查後臺程序時間
-u 執行用戶
-U sudo用戶
-l 限制設備範圍
-s是此用戶sudo無需輸入密碼
2、體驗命令操做
(1)用戶類操做
$ ansible webtest -m group -a"name=jjgame state=present" -s
$ ansible webtest -m user -a"name=utest groups=jjgame state=present" -s
$ ansible webtest -m user -a"name=utest state=absent remove=yes" -s
(2)服務安裝管理
$ ansible local -a 'sudo apt-get -y installnginx'
$ ansible local -a "sudo /etc/init.d/nginx stop"
$ ansible local -a "sudo /etc/init.d/nginx start"
$ ansible webtest -m service -a "name=nginx state=running" -s
(3)其餘測試過的
$ ansible datacenter -a 'ls -l /root' -s
$ ansible datacenter -a 'mv /root/old.tar.gz /root/new.tar.gz' -s
$ ansible datacenter -m file -a'path=/root/new.tar.gz' -s //查看文件屬性
$ ansible datacenter -a 'rm -rf /root/directory' -s //刪除目錄
$ ansible all -m command -a "/bin/echohello" --ask-pass
$ ansible all -m ping --ask-pass -u root
$ ansible all -m script -a"/root/hequan/shell/t.sh" -k
$ ansible all -m copy -a"src=/root/hequan/shell/t.sh dest=/tmp/ mode=755 owner=rootgroup=root" -k -u root
$ ansible all -m file -a"dest=/tmp/t.sh mode=755 owner=root group=root" -k -u root
$ ansible all -i /etc/ansible/serverlist -mshell -a "/tmp/t.sh" -k -u root
$ ansible webtest -m get_url -a"url=http://192.168.0.8/sa/ sh.tar.gz dest=/tmp/" -s
$ ansible webtest -a "sudo tar zxvf/tmp/ sh.tar.gz -C /tmp" -s //不指定解壓目錄,會解壓到/home/ansible目錄下
$ ansible webtest -a "sudo/tmp/lansa_sh/t.sh" –s
#### 以上內容剛學的,努力進行中……
ansible學習筆記(二):ansible for CentOS6安裝,連接:ansible學習筆記(二):ansible for CentOS6安裝
http://laowafang.blog.51cto.com/251518/1580747
Ansible中國用戶組QQ羣: 142851673
若第一個羣滿,請加到第二個交流羣「中國Ansible用戶組01」: 528060722。歡迎加入交流。
Ansible論壇:http://ansible.cn
《Ansible自動化運維:技術與最佳實踐》圖書已上架,歡迎你們閱讀!